Maven构建失败

时间:2016-07-08 11:50:20

标签: java maven

我导入了以下包:

import org.apache.commons.lang.ArrayUtils;

因此我在POM中添加了这种依赖:

<dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.4</version>
    </dependency>

然后我的Maven构建失败,这是我在Jenkins中的错误消息:

11:07:45 INFO: [INFO] 2 errors
11:07:45 INFO: [INFO] BUILD FAILURE
11:07:45 INFO: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project stripe: Compilation failure: Compilation failure:
11:07:45 INFO: [ERROR] /mnt/jenkinsSlaveWorkspace/xmakeProdSlave/workspace/somepath/util/MappingHelper.java:[7,32] package org.apache.commons.lang3 does not exist
11:07:45 INFO: [ERROR] /mnt/jenkinsSlaveWorkspace/xmakeProdSlave/workspace/somepath/gen/tmp/src/src/main/java/somepath/util/MappingHelper.java:[25,37] cannot find symbol
11:07:45 INFO: [ERROR] symbol:   variable ArrayUtils
11:07:45 INFO: [ERROR] location: class

我读到了一些我可能有错误的版本或因为下载的版本而发生冲突的版本,因此我尝试了3.0,2.6并在最后2.4但没有任何帮助。几年前我在StackOverflow上找到了一个问题,他们谈到了在Maven中做一些命令。关键是我在Eclipse中使用Maven插件,所以我无法使用那里提出的建议,任何人都遇到同样的问题?

4 个答案:

答案 0 :(得分:2)

似乎工件已被移动到另一个仓库here。对此的maven依赖是:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

此外,如果您需要执行特定目标,请在eclipse中右键单击您的项目,鼠标悬停为“运行方式”,然后单击“Maven Build ...”。在“目标”字段中,您可以输入在旧帖子中看到的目标。您可以尝试'clean install -U'删除旧的东西,安装新的依赖项,最后一个强制更新。

答案 1 :(得分:1)

如果您的import语句与上面粘贴的完全相同,则使用此依赖项:

this.listView1.MouseClick += new System.EventHandler(this.listView1_MouseClick);

但是,如果您希望使用<dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> 的最新版本,则导入必须是:

commons-lang

最新的依赖是:

import org.apache.commons.lang3.ArrayUtils;

背景:从版本3开始,<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> 依赖于Java 5(或更高版本)并破坏了向后兼容性。因此,项目重命名了所有软件包,以便遗留代码不会停止工作,同时使开发人员能够并排使用添加的功能。与此同时,该项目决定将maven坐标调整为惯例。

在此处阅读更多内容:What's new in Commons Lang 3.0?

答案 2 :(得分:0)

显示的依赖关系对于显示的import是正确的。当然,除了它被定义两次的事实。

但是,编译器错误与另一个import有关,具体来自package org.apache.commons.lang3。该特定导入需要不同的依赖definition

带有<artifactId>commons-lang3</artifactId>的commons-lang版本的API略有不同 - 使用JDK 1.5功能,如泛型和varargs - 以及Apache开发人员renamed package和{{1} }为了不破坏依赖旧API的现有代码。

答案 3 :(得分:-1)

我认为你对maven进口有点困惑。你为什么要进口两次相同的东西?

依赖项的导入需要在小册子中

尝试导入此内容:

<dependencies>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.4</version>
    </dependency>
</dependencies>

编辑:你有groupId等于工件ID,这肯定是错的!