156

这应该是我朋友的一个工作项目。他在我面前演示了这个项目,然后我复制了这个项目,将它作为一个现有的 maven 项目导入(我正在使用m2eclipse插件)。

然后,发生此错误。每次我尝试使用 Maven 构建某些东西时,都会重现此错误。

执行 mvn dependency:tree、dependency:list 或通常的构建包,将导致相同的错误。

从 Eclipse 运行“包”构建的错误是:

[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

<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>

我已经尝试下载最新版本的 maven,并将其包含在 eclipse helios 中,但仍然是同样的问题。即使我在 shell 命令行(在 eclipse 之外)中运行它,也会出现相同的错误消息。

我错过了什么?

4

14 回答 14

104

看起来您缺少一些 Maven 存储库。询问您朋友的.m2/settings.xml,您可能想要更新 POM 以在其中包含存储库。

--edit:在快速搜索后,尝试将其添加到您的 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>
于 2011-01-10T19:13:36.967 回答
22
mvn clean install -U

解决了我的问题。由于存储库被缓存,我需要强制它获取最新版本。

于 2020-03-04T08:04:01.557 回答
18

Maven 将您的文件保存在缓存中,并且不要重试下载它们。您可以简单地通过删除.m2目录手动“帮助”他,然后我们的朋友将下载旧依赖项的所有内容。

于 2015-08-22T17:30:39.887 回答
9

下载失败的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>
于 2011-01-11T05:33:22.623 回答
7

作为同一问题的替代来源,此答案引用使用 Maven 3 与 Maven 2 作为此问题的潜在原因。据我所知,这是由于在 Maven 3 中更改了本地存储库分辨率的变化。把它放在这里以防其他人搜索它并得到这个答案(就像我一样)。

于 2014-06-04T23:26:44.540 回答
7

手动下载 jar,然后从保存 jar 的文件夹中执行命令:

mvn install:install-file -Dfile=*jar_file_name*.jar-DgroupId=*group_id* -DartifactId=*artifact_id* -Dversion=*version_no* -Dpackaging=jar

jar filejar_file_name和可从 maven 存储库页面获得group_idartifact_idversion_no

于 2017-05-15T12:20:18.540 回答
4

我遇到了类似的问题,我通过在我的 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>
于 2015-01-30T19:05:02.697 回答
2

出现此类问题的原因有两个:

  1. 依赖的咒语是错误的
  2. mvn 设置的配置(即~/.m2/settings.xml)是错误的

如果大部分依赖都可以下载,那么原因1可能是最有可能的bug。相反,如果大多数依赖项都有问题,那么您应该查看settings.xml

好吧,我整个下午都试图解决我的问题,最后我得到了它。我的问题出现在 settings.xml 中,不是 settings.xml 的丢失或拼写错误而是activeProfiles的丢失。

于 2017-01-09T13:21:47.287 回答
1

我收到了类似的消息,我的问题是我的 settings.xml 中的一些代理首选项。所以我禁用了它们,一切正常。

于 2013-07-29T01:04:42.857 回答
0

我有这个问题。在我的情况下,这是由 IntelliJ Idea 弄乱了一些 pom.xml 文件引起的(它似乎很喜欢这样做!)。我刚刚恢复到原始副本,事情又恢复了!

于 2013-12-09T12:08:53.330 回答
0

我也遇到了这个问题,原来是因为 NetBeans 在我的 pom.xml 文件中添加了一些东西。仔细检查自上次成功部署以来没有添加任何内容。

于 2014-10-02T15:26:23.953 回答
0

我的 EAR 项目有 2 个模块 *.ear 和 *.war,我*.war在尝试时遇到了项目依赖错误mvn eclipse:eclipse。通过修复项目中的 utf-8 编码问题解决了它*.warmvn -X-e选项在这里没有帮助。

于 2016-04-01T04:34:39.440 回答
0

原来这是因为我电脑上的防火墙而发生的。关闭它对我有用。

于 2018-08-24T08:16:07.170 回答
0

遇到过这样的问题。根本原因是 .m2 文件夹。您必须确保您尝试访问的任何内容都存在于您的 .m2 文件夹中(这是您的本地存储库)。如果东西在那里,那么你很好。这通常存在于系统上的用户文件夹中(无论是 mac/linux 还是 windows)

于 2020-05-12T20:49:10.587 回答