在我的公司,我们使用Nexus服务器来获取工件。哪个好。但有时我也想在家里使用Maven,在那里我无法访问Nexus公司。有没有简单的方法来交换Maven设置配置文件?它是否可以使用m2eclipse
轻松交换?
目前我正在使用以下settings.xml:
<settings
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>central</id>
<username>company-user</username>
<password>company-user</password>
</server>
<server>
<id>mirror</id>
<username>company-user</username>
<password>company-user</password>
</server>
</servers>
<mirrors>
<mirror>
<id>mirror</id>
<url>https://url.to.company.nexus</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>defaultprofile</id>
<repositories>
<repository>
<id>central</id>
<name>Repository for Company artifacts</name>
<url>https://url.to.company.nexus</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Repository for Company artifacts</name>
<url>https://url.to.company.nexus</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
<activeProfiles>
<activeProfile>defaultprofile</activeProfile>
</activeProfiles>
</settings>
我知道我可能需要向http://repo1.maven.org/
添加新的个人资料,但如何确保现有的mirrors
不会因超时而抱怨?
答案 0 :(得分:3)
根据我的经验,最好有多个设置文件并根据需要进行交换。通过从不同命名的文件复制现有settings.xml的顶部,或使用mvn命令的-s选项指定设置文件。如果这样做太麻烦而无法一直输入,您还可以使用不同的设置文件为mvn命令创建别名。然而,这打破了Maven的bash完成,这就是我坚持只用脚本复制设置文件的原因。
同样的事情实际上适用于交换上下文,例如为Git更改.gitconfig文件,以便您可以将所有这些文件更改打包到脚本或git或其他任何分支中。
此外,它可以帮助在本地运行Nexus,只需连接到它,然后让它代理所有外部存储库..
答案 1 :(得分:2)
我可以建议的最好的方法是使用Git / SVN /并检查settings.xml文件并使用不同的分支来分隔公司和家庭。使用
svn switch URL/branches/company
svn switch URL/branches/home
或
git checkout company
git checkout home
配置文件不起作用,因为mirrorOf部分无法放入配置文件区域。可以通过配置对话框更改m2e。但这可能会导致与命令行不一致。
答案 2 :(得分:1)
不幸的是,无法在配置文件中配置镜像。为此,maven中有一个开放的request。正如JIRA中所建议的那样,您可以使用脚本轻松地在不同的settings.xml之间切换
至于回答标题中的问题:要轻松切换m2e中的个人资料,建议您从此更新网站安装JBoss Tools Maven Profile Manager:http://download.jboss.org/jbosstools/updates/stable/juno/
要在所有项目中启用相同的全局配置文件:
这相当于在每个项目属性页面中手动设置活动的maven配置文件,这更加繁琐。
答案 3 :(得分:0)
如果您已在本地存储库中下载了工件,则可以使用mvn -o clean compile ...
。这将避免远程存储库查找。