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

Why Maven resolver causes management dependencies errors?

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

[ERROR] Non-resolvable import POM: Failed to resolve POM for org.wildfly.bom:jboss-javaee-7.0-with-all:8.2.0.Final due to The repository system is offline but the artifact org.wildfly.bom:jboss-javaee-7.0-with-all:pom:8.2.0.Final is not available in the local repository. @ com.my.package:my.projet:0.0.1-SNAPSHOT, /home/workspace/My_projet/pom.xml

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

错误消息说 Maven 想从某个地方下载依赖项,因为在您的本地存储库中找不到它。你还把Maven配置成离线工作,所以没办法解决问题,失败了。

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

要解决此问题,请确保 Maven 查找的位置符合您的预期。