Brak POM dla projektu, brak informacji o zależności

Tło

Próba dodania Biblioteki Javy do lokalnego repozytorium Maven przy użyciu czystej instalacji Apache Maven 3.1.0, z Javą 1.7. Oto jak Dodano plik archiwum Javy:

mvn install:install-file \
  -DgroupId=net.sourceforge.ant4x \
  -DartifactId=ant4x \
  -Dversion=0.3.0 \
  -Dfile=ant4x-0.3.0.jar \
  -Dpackaging=jar

Utworzyło to następującą strukturę katalogów:

$HOME/.m2/repository/net/sourceforge/ant4x/
├── 0.3.0
│   ├── ant4x-0.3.0.jar.lastUpdated
│   └── ant4x-0.3.0.pom.lastUpdated
└── ant4x
    ├── 0.3.0
    │   ├── ant4x-0.3.0.jar
    │   ├── ant4x-0.3.0.pom
    │   └── _remote.repositories
    └── maven-metadata-local.xml

Plik pom.xml projektu odwołuje się do zależnego projektu (drzewa powyżej) w następujący sposób:

<properties>
  <java-version>1.5</java-version>
  <net.sourceforge.ant4x-version>0.3.0</net.sourceforge.ant4x-version>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
<dependency>
  <groupId>net.sourceforge</groupId>
  <artifactId>ant4x</artifactId>
  <version>${net.sourceforge.ant4x-version}</version>
  <scope>provided</scope>
</dependency>

Problem

Po uruchomieniu mvn compile zwrócono następujący błąd (pełne logowanie Pastebin):

[ERROR] Failed to execute goal on project ant4docbook: Could not resolve dependencies for project net.sourceforge:ant4docbook:jar:0.6-SNAPSHOT: Failure to find net.sourceforge:ant4x:jar:0.3.0 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

Dokumentacja zwraca uwagę na szereg problemów, które mogą być obecne, jednak żadna z nich nie wydaje się mieć zastosowania.

Pomysły

Próbowałem następujących, zgodnie z dokumentacją:

  1. skopiuj domyślne ustawienia do katalogu domowego użytkownika dla Mavena:
    cp /opt/apache-maven-3.1.0/conf/settings.xml $HOME/.m2/.
  2. Edycja ustawień użytkownika.plik xml.
  3. zaktualizuj wartość lokalnego repozytorium:
    ${user.home}/.m2/repository
  4. Zapisz plik.

Wypróbowałem również następujące polecenia:

mvn -U
mvn clear -U

Próbowałem użyć Maven 3.0.5, ale to też nie powiodło się.

Pytanie

Jak zmusić Mavena do korzystania z lokalnej wersji biblioteki, zamiast szukać biblioteki, która nie jest jeszcze dostępna do pobrania?

Powiązane

Powiązane pytania i informacje, które nie rozwiązały problemu:

Author: Community, 2013-09-11

2 answers

Zmiana:

<!-- ANT4X -->
<dependency>
  <groupId>net.sourceforge</groupId>
  <artifactId>ant4x</artifactId>
  <version>${net.sourceforge.ant4x-version}</version>
  <scope>provided</scope>
</dependency>

Do:

<!-- ANT4X -->
<dependency>
  <groupId>net.sourceforge.ant4x</groupId>
  <artifactId>ant4x</artifactId>
  <version>${net.sourceforge.ant4x-version}</version>
  <scope>provided</scope>
</dependency>

groupId z net.sourceforge było nieprawidłowe. Poprawną wartością jest net.sourceforge.ant4x.

 14
Author: Dave Jarvis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-11 03:36:36

Zakres <scope>provided</scope> daje Ci możliwość poinformowania, że jar będzie dostępny w czasie działania, więc nie łącz go w Pakiety. Nie oznacza to, że nie potrzebujesz go w czasie kompilacji, dlatego maven spróbuje go pobrać.

Teraz myślę, że poniższy artefakt Mavena w ogóle nie istnieje. Próbuję wyszukać w google, ale nie jestem w stanie znaleźć. Stąd otrzymujesz ten problem.

Zmień groupId na <groupId>net.sourceforge.ant4x</groupId>, Aby uzyskać najnowszy jar.

<dependency>
  <groupId>net.sourceforge.ant4x</groupId>
  <artifactId>ant4x</artifactId>
  <version>${net.sourceforge.ant4x-version}</version>
  <scope>provided</scope>
</dependency>

EDIT:

Rozwiązanie tego problemu, jeden z roztworu jest

  1. Uruchom własny Maven repo.
  2. Pobierz słoik
  3. zainstaluj jar w repozytorium.
  4. Dodaj kod w pom.xml coś w stylu:

.

where http://localhost/repo is your local repo URL
<repositories>
    <repository>
        <id>wmc-central</id>
        <url>http://localhost/repo</url>
    </repository>
..................... Other repository config ......................
</repositories>
 3
Author: gyan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-04 18:41:39