我一直在面对.git/refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)
的一些问题。实际上问题是在工作场所我需要指向我们的VPN上的不同存储库,而在尝试新的示例的情况下,我想忽略在VPN上配置的存储库服务器的settings.xml
。有没有办法可以做到?目前我正在做的是,我只需将settings.xml
的名称更改为settings.xml
即可。但我厌倦了做这些改变。
我的同事做的一件事就是将settings.xml保存在项目本身中。我不喜欢它,因为它是maven存储库配置,它不应该保存在项目本身。对于同样的事情,我也从快速入门指南中得到了类似的参考。来自official documentation on settings:
settings.xml文件中的settings元素包含用于定义以各种方式配置Maven执行的值的元素,例如pom.xml,但不应捆绑到任何特定项目或分发给受众。
如果您有任何解决方案,请随时回答。
答案 0 :(得分:2)
如果您的settings.xml
文件中定义了存储库,则它们会在配置文件中定义,我认为默认情况下它是活动的,应用official documentation上建议的标准方法。假设此配置文件名为vpn-rep
(通过其id
元素)。
然后,您可以添加第二个配置文件,该配置文件声明您想要的任何存储库,默认情况下不会处于活动状所以,没有影响。你可以称之为my-rep
。
然后,由于它们是配置文件,您可以从命令行轻松switch,如下所示:
mvn clean install -P!vpn-rep,my-rep
-P!vpn-rep,my-rep
部分实际上将关闭vpn-rep
配置文件(因此maven将不使用在其上声明的存储库,也就是说,不会使用VPN存储库)并将打开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>
答案 1 :(得分:0)
我假设你有一个私有(内部工件)和公共存储库。如果是这种情况,只需将两者都添加到您的设置文件中,它将按照给定的顺序查看每个存储库
请参阅https://maven.apache.org/guides/mini/guide-multiple-repositories.html