繁体   English   中英

Maven 包错误:org.apache.commons-lang 不存在 (Java)

[英]Maven package error: org.apache.commons-lang does not exist (Java)

我正在使用 MyEclipse 开发一个非常简单的 Java Struts 项目。 一切正常,直到我想在org.apache.commons.lang 中使用StringUtils类。 在 MyEclipse 中,我导入了这样的包

import org.apache.commons.lang.StringUtils;

我将commons-lang-2.4的 Jar 文件添加到我的构建路径中。 这一切都很好,而且我得到了 Intellisense 并且在 Eclipse 或任何东西中都没有错误。 现在,当我去做一个mvn clean 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。 现在这是让我大吃一惊的地方,在我从本地存储库中删除它并运行mvn clean package ,它出去下载了commons-lang-2.1 .pom 和 jar(即使 pom.xml 有 2.4)但是仍然给出编译失败,说包 org.apache.commons.lang 不存在

我很久没有使用 Maven 了,所以我不知道如何解决这个问题。 我错过了什么吗? 我是否需要在其他地方的另一个 pom.xml 文件中添加依赖项?

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

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

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

$ mvn dependency:copy-dependencies

commons-lang JAR 复制到您的target

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

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

我在没有 settings.xml 的情况下做了“mvn clean install -U”,所以它出错了。 然后我添加了settings.xml,做了“mvn clean install -U”,它说“错误:org.apache.commons-lang不存在”。 我知道代码是在另一台机器上成功构建的。 所以这不是我的代码。 大约 2 或 3 小时后,我终于意识到这是 .m2\\repository 在我第一次运行时被破坏了。 所以只需删除“repository”文件夹并运行“mvn clean install -U”并成功。

最好使用以下以避免冲突:

import org.springframework.util.StringUtils;

在 src/main/java 中会有一个 .auth 文件夹。 打开文件夹,转到 AuthController.java 文件并删除 import io.swagger 行。 重新开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM