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ą:
- skopiuj domyślne ustawienia do katalogu domowego użytkownika dla Mavena:
cp /opt/apache-maven-3.1.0/conf/settings.xml $HOME/.m2/.
- Edycja ustawień użytkownika.plik xml.
- zaktualizuj wartość lokalnego repozytorium:
${user.home}/.m2/repository
- 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:
- POM dla org.springframework.bezpieczeństwo: org.springframework.Ochrona.web: jar: 3.0.5.Brak Wydania, nie dostępne informacje o zależności
- Jak mogę zlokalizować POM, który żąda brakującego POM?
- Maven: Including jar not found in public repozytorium
- http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
- http://giallone.blogspot.ca/2012/12/maven-install-missing-offline.html
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
.
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
- Uruchom własny Maven repo.
- Pobierz słoik
- zainstaluj jar w repozytorium.
- 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>
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