Maven package error: org.apache.commons-lang 不存在 (Java)

2022-09-01 03:51:02

我正在使用MyEclipse来开发一个非常简单的Java Struts项目。一切都很好,直到我想在org.apache.commons.lang中使用这个类。在MyEclipse中,我导入了软件包,如下所示StringUtils

import org.apache.commons.lang.StringUtils;

我将 commons-lang-2.4 的 Jar 文件添加到我的构建路径中。这一切都很好,很花哨,我得到了Intellisense,Eclipse或任何东西都没有错误。现在,当我去做一个,我得到一个错误说mvn clean package

package org.apache.commons.lang 不存在

我签入了我的 war/Pom.xml 文件,并且我确实将其声明为依赖项

<dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.0.1</version>
    </dependency>

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

</dependencies>

根据我的研究,我认为Maven应该下载该软件包并将其安装到我的本地存储库中,如果它不存在。我检查了存储库,jar文件就在那里。我认为jar文件必须损坏,所以我删除了commons-lang文件夹以获得commons-lang的全新下载。现在,这是我从本地存储库中删除它并运行一个之后,它出去下载commons-lang-2.1.pom和jar(即使pom.xml有2.4)但仍然给出了编译失败,说包org.apache.commons.lang不存在mvn clean package

我没有使用Maven很长时间,所以我不确定如何解决这个问题。我错过了什么吗?我是否需要将依赖项添加到其他位置的另一个 pom.xml 文件中?


答案 1

请尝试运行以下命令并检查输出:

$ mvn dependency:tree
$ mvn help:effective-pom

寻找 ,也许有些东西会引起你的注意,比如排除或依赖覆盖。此外,是:commons-lang

$ mvn dependency:copy-dependencies

将 JAR 复制到您的 ?commons-langtarget


答案 2

在依赖项标记中向 pom.xml 添加以下依赖项对我很有帮助:

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

推荐