To ma być działający projekt mojego przyjaciela. Pokazał projekt tuż przede mną, a następnie skopiowałem go, zaimportowałem jako istniejący projekt mavena (używam m2eclipse
wtyczki).
A potem pojawia się ten błąd. Ten błąd można odtworzyć za każdym razem, gdy próbuję zbudować coś za pomocą mavena.
Wykonanie zależności mvn: tree, dependency: list lub zwykłego pakietu kompilacji spowoduje ten sam błąd.
Błąd podczas uruchamiania kompilacji „pakietu” z eclipse to:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Jackpot Portal Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet:jar:2.5.0 is missing, no dependency information available
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0 is missing, no dependency information available
[WARNING] The POM for javax.transaction:com.springsource.javax.transaction:jar:1.1.0 is missing, no dependency information available
[WARNING] The POM for org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.963s
[INFO] Finished at: Tue Jan 11 01:55:41 WIT 2011
[INFO] Final Memory: 2M/56M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project jackpot: Could not resolve dependencies
for project com.jeteo:jackpot:war:1.0-SNAPSHOT: The following artifacts could
not be resolved: javax.servlet:com.springsource.javax.servlet:jar:2.5.0,
javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0,
javax.transaction:com.springsource.javax.transaction:jar:1.1.0,
org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6: Failure to find
javax.servlet:com.springsource.javax.servlet:jar:2.5.0 in
http://repository.springsource.com/maven/bundles/release was cached in the
local repository, resolution will not be reattempted until the update
interval of com.springsource.repository.bundles.release has elapsed or
updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
A oto treść pom.xml
:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jeteo</groupId>
<artifactId>jackpot</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Jackpot Portal Webapp</name>
<url>http://www.jeteo.com</url>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.0.3.RELEASE</org.springframework-version>
<org.hibernate-version>3.6.0.Final</org.hibernate-version>
<org.aspectj-version>1.6.9</org.aspectj-version>
<org.slf4j-version>1.5.10</org.slf4j-version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sf.jt400</groupId>
<artifactId>jt400</artifactId>
<version>6.6</version>
<scope>compile</scope>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${org.hibernate-version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${org.hibernate-version}</version>
<scope>compile</scope>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>com.springsource.javax.servlet</artifactId>
<version>2.5.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>com.springsource.javax.servlet.jsp.jstl</artifactId>
<version>1.2.0</version>
<scope>provided</scope>
</dependency>
<!--
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>com.springsource.javax.persistence</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
-->
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>com.springsource.javax.transaction</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>com.springsource.slf4j.log4j</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.11</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<!-- Spring releases -->
<repository>
<id>com.springsource.repository.bundles.release</id>
<name>Spring Maven Repository Repository</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
<!-- For hibernate 3.6 support -->
<repository>
<id>jboss</id>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
</repositories>
<build>
<finalName>jackpot</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>http://localhost:8080/manager</url>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Próbowałem pobrać najnowszą wersję mavena i umieściłem ją w heliosie zaćmienia, ale wciąż ten sam problem. Ten sam komunikat o błędzie pojawia się nawet wtedy, gdy uruchamiam go w linii poleceń powłoki (poza zaćmieniem).
czego mi brakuje?
Odpowiedzi:
Wygląda na to, że brakuje Ci niektórych repozytoriów Maven. Zapytaj swojego przyjaciela
.m2/settings.xml
, a prawdopodobnie będziesz chciał zaktualizować POM, aby zawierał tam repozytoria.--edit: po szybkim googlowaniu, spróbuj dodać to do swojego POM:
<repository> <id>com.springsource.repository.bundles.release</id> <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name> <url>http://repository.springsource.com/maven/bundles/release</url> </repository> <repository> <id>com.springsource.repository.bundles.external</id> <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name> <url>http://repository.springsource.com/maven/bundles/external</url> </repository>
źródło
.m2/settings.xml
może określać listy repozytoriów poza standardowymi wrepo.maven.apache.org
. W tym przypadku pliki JAR pochodzą z repozytorium SpringSource i nie znajdują się w Maven Central. Założyłem, że znajomy miał repozytoria SpringSource wymienione w lokalnym.m2/settings.xml
, co nie powoduje błędów wyszukiwania, ponieważ artefakty zostaną znalezione w alternatywnych repozytoriach maven. Zamiast tego pliki JAR zostały zapisane w pamięci podręcznej i żadne wyszukiwania nie miały miejsca.Maven zachował twoje pliki w pamięci podręcznej i nie próbuj ich ponownie pobierać. Możesz po prostu ręcznie „pomóc” mu, usuwając
.m2
katalog, a wtedy nasz przyjaciel pobierze wszystko przez stare zależności.źródło
Jako alternatywne źródło tego samego problemu, ta odpowiedź wymienia użycie Maven 3 w porównaniu z Maven 2 jako potencjalną przyczynę tego problemu. Prawie jak mogę stwierdzić, jest to spowodowane zmianami w rozdzielczości lokalnego repozytorium, która została zmieniona w Maven 3. Umieszczenie tego tutaj na wypadek, gdyby ktoś inny szukał go w Google i osiągnął tę odpowiedź (tak jak ja).
źródło
artifactId
Dla wszystkich zależności, które udało się pobrać są błędne - z jakiegoś powodu są prefiksemcom.springsource
. Problem z wycinaniem / wklejaniem?Możesz spróbować je wymienić w następujący sposób.
<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.6</version> </dependency>
Możesz również dodać centralne repozytorium maven dla tych artefaktów na wypadek, gdyby nie były dostępne w określonych repozytoriach.
<repository> <id>maven2</id> <url>http://repo1.maven.org/maven2</url> </repository>
źródło
Pobierz słoik ręcznie, a następnie wykonaj polecenie z folderu, w którym zapisano jar:
jar file
,jar_file_name
,group_id
,artifact_id
Iversion_no
są dostępne w repozytorium Maven stronie.źródło
Miałem podobny problem i naprawiłem go, dodając poniższe repozytoria do mojego pom.xml:
<repository> <id>org.springframework.maven.release</id> <name>Spring Maven Release Repository</name> <url>http://repo.springsource.org/libs-release-local</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>false</enabled></snapshots> </repository> <!-- For testing against latest Spring snapshots --> <repository> <id>org.springframework.maven.snapshot</id> <name>Spring Maven Snapshot Repository</name> <url>http://repo.springsource.org/libs-snapshot-local</url> <releases><enabled>false</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> <!-- For developing against latest Spring milestones --> <repository> <id>org.springframework.maven.milestone</id> <name>Spring Maven Milestone Repository</name> <url>http://repo.springsource.org/libs-milestone-local</url> <snapshots><enabled>false</enabled></snapshots> </repository>
źródło
Rozwiązał mój problem. Ponieważ repozytoria były buforowane, musiałem wymusić na nim pobranie najnowszej wersji.
źródło
Tego rodzaju problemy są spowodowane dwoma przyczynami:
Jeśli można pobrać większość zależności, przyczyną 1 może być najbardziej prawdopodobny błąd. Wręcz przeciwnie, jeśli większość zależności ma problem, powinieneś rzucić okiem na settings.xml .
Cóż, próbowałem rozwiązać swój problem przez całe popołudnie iw końcu udało mi się to. Mój problem występuje w settings.xml, a nie utrata lub zła pisownia settings.xml , ale utrata activeProfiles .
źródło
Otrzymałem podobny komunikat i moim problemem były preferencje serwera proxy w moim pliku settings.xml. Więc je wyłączyłem i wszystko działa dobrze.
źródło
Miałem ten problem. W moim przypadku było to spowodowane tym, że IntelliJ Idea bawił się niektórymi plikami pom.xml (co wydaje się lubić!). Właśnie wróciłem do oryginalnej kopii i wszystko znowu działało!
źródło
Ja też miałem ten problem, okazało się, że to przez to, że NetBeans dodał coś do mojego pliku pom.xml. Dokładnie sprawdź, czy nic nie zostało dodane od czasu poprzednich udanych wdrożeń.
źródło
Mój projekt EAR miał 2 moduły * .ear i * .war i
*.war
podczas próby pojawił się ten błąd zależności od projektumvn eclipse:eclipse
. Rozwiązano go, naprawiając problem z kodowaniem utf-8 w*.war
projekcie.mvn
-X
lub-e
opcje nie pomogły tutaj.źródło
Okazuje się, że stało się to z powodu firewalla na moim komputerze. Wyłączenie go działało dla mnie.
źródło
Natknąłem się na taki problem. Główną przyczyną jest folder .m2. Musisz upewnić się, że wszystko, do czego próbujesz uzyskać dostęp, znajduje się w folderze .m2 (to jest twoje lokalne repozytorium). Jeśli coś tam jest, jesteś dobry. Zwykle znajduje się w folderze użytkowników w systemie (czy to Mac / Linux, a nawet Windows)
źródło