为什么Maven解析器导致管理依赖性错误?

时间:2015-03-17 15:10:30

标签: java maven jboss-arquillian

我有一个项目和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

显然,所有管理依赖都没有解决,为什么?

1 个答案:

答案 0 :(得分:4)

错误消息显示Maven想从某个地方下载依赖项,因为它无法在您的本地仓库中找到。您还将Maven配置为脱机工作,因此无法解决问题并且失败。

问题可能是您在测试中配置Maven以查找特殊的本地测试仓库而不是默认的$HOME/.m2/repository/

要解决此问题,请确保Maven在您希望看到的位置查找。