我已经建立了一个 arquillian 项目,它在本地运行良好,但是在我们的持续集成盒上运行 maven 构建时它失败了。我设法找到了问题的根源,这是因为 CI 框上的 maven 用户 settings.xml 文件实际上有一些服务器定义(用于另一个项目),而在我的机器本地它是默认文件(没有定义服务器)。测试会抛出 RuntimeException,因为 MavenResolver 会查找 CI 框上不存在的 settings-security.xml 文件。
我不想去添加 settings-security.xml,而是想为解析器提供一个“空”的 settings.xml 文件,或者更好的是,告诉它不要使用。这可能吗?
我尝试了这个线程https://developer.jboss.org/thread/174873的答案,它几乎说要向故障安全插件添加以下选项:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version><!-- or upper -->
<configuration>
<systemPropertyVariables>
<org.apache.maven.user-settings>nonExistentSetting.xml</org.apache.maven.user-settings>
</systemPropertyVariables>
</configuration>
</plugin>
如果我这样做并提供一个不存在的 xml 文件,那么在运行“mvn clean install”的命令行中一切正常,但是当我在我的 IDE 中调试时它仍然失败。
有没有办法我可以:告诉 maven 解析器不要使用 settings.xml / 使用“默认”文件在我的项目中创建一个空的 settings.xml 并告诉 maven 解析器使用它
我确实在我的代码中尝试了以下行来构建我的存档,但它似乎没有效果:
.addAsLibraries(Maven.configureResolver().fromFile("test-settings.xml").loadPomFromFile("pom.xml").importRuntimeDependencies().resolve().withTransitivity().asFile())
感谢您的帮助,克雷格