我在settings.xml上遇到了一些问题。实际上,问题在工作地点,我需要指出我们VPN上的不同存储库,而在尝试新示例时,我想忽略配置在VPN上的存储库服务器的settings.xml。有什么办法我能做到吗?目前,我所做的只是简单地将settings.xml的名称更改为settings.xml1,这样就可以了。但我厌倦了这样的改变。
我的同事做的一件事就是将settings.xml保存在项目本身中。我不喜欢它,因为它是maven存储库配置,不应该保存在项目本身中。对于同样的事情,我得到了类似的参考从快速启动指南以及。来自关于设置的正式文件
settings.xml文件中的设置元素包含用于定义值的元素,这些值以各种方式配置Maven执行,如pom.xml,但不应绑定到任何特定项目,也不应分发给受众。
如果您对此有任何解决方案,请随意回答。
发布于 2016-01-09 22:22:00
如果存储库是在您的settings.xml文件中定义的,那么它们就会在配置文件中定义,我猜它在默认情况下是活动的,使用了正式文件上建议的标准方法。假设这个概要文件名为vpn-rep (通过它的id元素)。
然后,您可以添加第二个概要文件,它声明任何您想要的存储库,默认情况下不处于活动状态。所以没有影响。你可以叫它my-rep。
然后,由于它们是概要文件,您可以从一个命令行轻松地从一个到另一个交换机,如下所示:
mvn clean install -P!vpn-rep,my-rep-P!vpn-rep,my-rep部分实际上将关闭vpn-rep配置文件(因此maven将不使用在其上声明的存储库,即不使用my-rep存储库),并将打开my-rep配置文件。
如果您实际上没有配置任何额外的或特殊的存储库,而且您只是不想使用VPN存储库,您可以跳过第二个配置文件的创建,只关闭第一个配置文件(-P!vpn-rep),那么Maven将使用默认的存储库。
这样一个settings.xml文件的外观示例如下:
<settings>
<profiles>
<profile>
<id>vpn-rep</id>
<repositories>
<repository>
<id>central</id>
<url>http://your-vpn-company-repository/libs-releases</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
...
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>my-rep</id>
<repositories>
<!-- any specific repository configuration here -->
</repositories>
<pluginRepositories>
...
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>vpn-rep</activeProfile>
</activeProfiles>
</settings>发布于 2016-01-08 08:42:12
我假设您有一个私有(内部构件)和公共存储库。如果是这样的话,只需将两者都添加到您的设置文件中,它将按照给定的顺序查看每个存储库。
请参阅https://maven.apache.org/guides/mini/guide-multiple-repositories.html
https://stackoverflow.com/questions/34670042
复制相似问题