我正在使用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文件中添加依赖项?
答案 0 :(得分:26)
尝试运行以下命令并检查输出:
$ mvn dependency:tree
$ mvn help:effective-pom
寻找commons-lang
,也许某些事情会引起你的注意,例如排除或依赖性覆盖。另外,是:
$ mvn dependency:copy-dependencies
将commons-lang
JAR复制到target
?
答案 1 :(得分:0)
在依赖性标签中向pom.xml添加以下依赖性对我有帮助:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
答案 2 :(得分:0)
我没有进行settings.xml的“ mvn全新安装-U”,所以它出错了。然后我添加了settings.xml,做了“ mvn clean install -U”,它说“ error:org.apache.commons-lang不存在”。我知道代码是在另一台机器上成功构建的。所以这不是我的代码。大约2或3个小时后,我终于意识到这是.m2 \ repository被我的第一次运行损坏了。因此,只需删除“ repository”文件夹完整并运行“ mvn clean install -U”即可成功。
答案 3 :(得分:0)
最好在下面使用以避免冲突:
import org.springframework.util.StringUtils;
答案 4 :(得分:-7)
在src / main / java中会有一个.auth文件夹。打开文件夹,转到AuthController.java文件并删除import io.swagger行。重新启动。