我正在使用MyEclipse开发一个非常简单的Java Struts项目.一切都工作正常,直到我想StringUtils在org.apache.commons.lang中使用该类.在MyEclipse我导入的包就像
import org.apache.commons.lang.StringUtils;
Run Code Online (Sandbox Code Playgroud)
我将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>
Run Code Online (Sandbox Code Playgroud)
根据我的研究,我认为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文件中添加依赖项?
Tom*_*icz 27
尝试运行以下命令并检查输出:
$ mvn dependency:tree
$ mvn help:effective-pom
Run Code Online (Sandbox Code Playgroud)
寻找commons-lang,也许某些东西会引起你的注意,如排除或依赖性覆盖.也是:
$ mvn dependency:copy-dependencies
Run Code Online (Sandbox Code Playgroud)
把commons-langJAR 复制到你的target?
小智 14
在依赖项标记中向 pom.xml 添加以下依赖项对我有帮助:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我在没有 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”并成功。
| 归档时间: |
|
| 查看次数: |
61640 次 |
| 最近记录: |