为什么 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 查找的位置符合您的预期。
我有一个项目和 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 查找的位置符合您的预期。