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

nlejzf6q  于 2023-06-05  发布在  Maven
关注(0)|答案(5)|浏览(1306)

我正在使用MyEclipse开发一个非常简单的Java Struts项目。在我想使用org.apache.commons.lang中的StringUtils类之前,一切都运行得很好。在MyEclipse中,我导入了如下包

import org.apache.commons.lang.StringUtils;

我将commons-lang-2.4的Jar文件添加到构建路径中。这一切都工作得很好,很好,我得到了智能感知,没有错误,在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文件中添加依赖项吗?

omtl5h9j

omtl5h9j1#

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

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

查找commons-lang,可能会有一些东西会引起您的注意,例如排除或依赖项重写。此外,是:

$ mvn dependency:copy-dependencies

commons-lang JAR复制到target

jtoj6r0c

jtoj6r0c2#

在dependencies标签中向pom.xml添加以下依赖项帮助了我:

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

huwehgph3#

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

nwwlzxa7

nwwlzxa74#

在pom.xml中添加以下内容

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

并确保您的Java代码具有以下导入条目:import org.apache.commons.lang3.StringUtils; NOT import org.apache.commons.lang.StringUtils;
请注意lang 3,它在这里产生了差异。

u0njafvf

u0njafvf5#

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

相关问题