2010-03-09 63 views
3

http://maven.apache.org/settings.html根据文档,可以将用户特定的设置复制到.m2文件夹或在maven安装下。如果开发人员更改机器或获取新的用户标识,则必须手动将这些属性复制到这些较新的机器。存储库中用户特定的maven设置

是否有可能将用户特定的设置信息存储在存储库本身(比如说SVN),并以某种方式让mvn脚本在启动时加载它。

回答

6

如果settings.xml的内容不是该用户特定的(例如mirrors),您可以将整个Maven安装存储在SVN中,并自定义为conf/settings.xml,并让开发人员从SVN抓取它,将其安装在新机器上,如previous answer中所述。

如果settings.xml的内容实际上是用户特定的(例如它包含密码等秘密内容),则它必须位于~/.m2中,您必须以某种方式在新位置提供该内容。如果开发人员登录另一台机器,则可以使用“Roaming user profile”。如果开发者获得了另一个ID,那么您将不得不复制它。技术解决方案可能取决于所需的机密级别。

如果您有几个开发者共享一个用户标识但仍需要不同的settings.xml,那么您必须使用-s选项将它传递给Maven。可以想象在这种情况下(假设它不包含敏感信息)存储这些自定义settings.xml项目。例如:

mvn -s settings-user1.xml <goal> 
0

不,用户设置的重点是将它们存储在Maven项目之外。但是,没有什么能够阻止您创建自己的svn存储库并将您的配置文件存储在那里。您可以编写一些shell脚本来从该存储库引导一个新的工作站,但这取决于您多久这样做才能使其值得。

+0

我们还有一种情况,某些机器用户ID在几个开发人员之间共享,这使得问题更加严重。然后,每次他们想要使用该机器时,我都必须为不同的用户使用不同的settings.xml文件。 – Sam 2010-03-09 06:51:46

0

我建议您设置自己的存储库,如Archiva,Nexus或Artifactory。这将获得您的依赖关系/插件,然后您可以使用mirror明确指定明确只需要一个存储库(您在网络上设置的存储库)。因此,无论何时开发人员需要为多个开发人员更换机器或依赖关系,内部镜像可用作回购,您的依赖/插件将立即下载到您的本地存储库