我有一个项目和2个开发环境,1个在Windows上,1个在Linux上 所以一切都适用于Windows,但不适用于Linux。
在我的POM中,我定义了管理依赖,如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>jboss-javaee-7.0-with-all</artifactId>
<version>${version.org.wildfly}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
......
</dependencyManagement>
我使用Arquillian来运行我的单元测试,部署方法加载来自POM的依赖:
PomEquippedResolveStage pom = Maven.resolver().offline().loadPomFromFile("pom.xml");
WebArchive arch =
ShrinkWrap
.create(WebArchive.class, "test.war")
.....
.addAsLibraries(pom.importRuntimeDependencies().resolve().withTransitivity().asFile());
但是,loadPomFromFile方法抛出一个InvalidConfigurationFileException:
[错误]不可解析的导入POM:无法解析org.wildfly.bom:jboss-javaee-7.0-with-all:8.2.0.Final的POM 存储库系统是脱机但是工件 org.wildfly.bom:jboss-javaee-7.0-with-all:pom:8.2.0.Final不是 可在本地存储库中找到。 @ com.my.package:my.projet:0.0.1-快照 /home/workspace/My_projet/pom.xml
显然,所有管理依赖都没有解决,为什么?
答案 0 :(得分:4)
错误消息显示Maven想从某个地方下载依赖项,因为它无法在您的本地仓库中找到。您还将Maven配置为脱机工作,因此无法解决问题并且失败。
问题可能是您在测试中配置Maven以查找特殊的本地测试仓库而不是默认的$HOME/.m2/repository/
。
要解决此问题,请确保Maven在您希望看到的位置查找。