这应该是我朋友的工作项目。他在我面前展示了项目,然后我复制了项目,将其作为现有的maven项目导入(我正在使用m2eclipse
插件)。
然后,发生此错误。每当我尝试使用maven构建内容时,都可以重现此错误。
执行mvn依赖:tree,dependency:list或通常的构建包会导致相同的错误。
从eclipse运行'package'构建的错误是:
[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
以下是pom.xml
:
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>
我已经尝试下载最新版本的maven,并将其包含在eclipse helios中,但仍然是同样的问题。即使我在shell命令行(在eclipse之外)运行它也会发生相同的错误消息。
我缺少什么?
答案 0 :(得分:75)
看起来你错过了一些Maven回购。询问你朋友的.m2/settings.xml
,你可能想要更新POM以在那里包含存储库。
- 编辑:在一些快速谷歌搜索后,尝试将其添加到您的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>
答案 1 :(得分:14)
Maven将您的文件保存在缓存中,并且不会重试下载它们。您只需手动“帮助”即可。他通过删除.m2目录,然后我们的朋友将下载旧的依赖项。
答案 2 :(得分:7)
作为同一问题的替代来源,this answer引用Maven 3与Maven 2作为此问题的潜在原因。接近我可以说,这是由于local repository resolution中的变化在Maven 3中发生了变化。将此放在这里以防万一其他人用谷歌搜索并达到这个答案(正如我所做的那样)。
答案 3 :(得分:7)
mvn clean install -U
解决了我的问题。由于回购已被缓存,因此我需要强制其获取最新版本。
答案 4 :(得分:5)
未能下载的所有依赖项的artifactId
不正确 - 由于某种原因,它们以com.springsource
为前缀。剪切/粘贴问题?
您可以尝试按以下方式更换它们。
<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>
您可能还希望为这些工件添加maven中央存储库,以防它们在指定的存储库中不可用。
<repository>
<id>maven2</id>
<url>http://repo1.maven.org/maven2</url>
</repository>
答案 5 :(得分:3)
我有类似的问题,我通过在我的pom.xml中添加以下repos来修复它:
<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>
答案 6 :(得分:3)
手动下载jar,然后从保存jar的文件夹中执行命令:
mvn install:install-file -Dfile = jar_file_name .jar-DgroupId = group_id -DartifactId = artifact_id -Dversion = version_no -Dpackaging = jar
可以从maven存储库页面获取jar文件,jar_file_name,group_id,artifact_id和version_no。
快乐的编码:)
答案 7 :(得分:1)
我有类似的消息,我的问题是我的settings.xml中的一些代理首选项。 所以我禁用了它们,一切正常。
答案 8 :(得分:0)
我有这个问题。在我的情况下,它是由IntelliJ Idea搞乱了一些pom.xml文件(它似乎喜欢做!)。我刚刚恢复原来的副本,事情又恢复了!
答案 9 :(得分:0)
我也有这个问题,原来是因为NetBeans在我的pom.xml文件中添加了一些东西。自上次成功部署以来,没有添加任何内容。
答案 10 :(得分:0)
我的EAR项目有2个模块* .ear和* .war,在尝试*.war
时,我在mvn eclipse:eclipse
项目中遇到此依赖项错误。通过修复*.war
项目中的utf-8编码问题解决了这个问题。 mvn
-X
或-e
个选项在这里没有帮助。
答案 11 :(得分:0)
这种问题是由两个原因引起的:
如果可以下载大多数依赖项,那么原因1可能是最可能的错误。 相反,如果大多数依赖项存在问题,那么您应该查看 settings.xml 。
嗯,我整个下午试图解决我的问题,最后我明白了。我的问题发生在settings.xml中,而不是 settings.xml 的丢失或错误拼写,但丢失了activeProfiles。
答案 12 :(得分:0)
我和您有同样的问题,事实证明这是由于计算机上的防火墙导致的。关闭防火墙,然后重试。祝你好运!
答案 13 :(得分:0)
遇到过这样的问题。根本原因是.m2文件夹。 您必须确保.m2文件夹中存在任何您要访问的内容(这是您的本地存储库)。如果那里有东西,那你就很好。 这通常出现在系统上的users文件夹内(无论是mac / linux还是Windows)