http://maven.apache.org/settings.html根据文档,可以将用户特定的设置复制到.m2文件夹或在maven安装下。如果开发人员更改机器或获取新的用户标识,则必须手动将这些属性复制到这些较新的机器。存储库中用户特定的maven设置
是否有可能将用户特定的设置信息存储在存储库本身(比如说SVN),并以某种方式让mvn脚本在启动时加载它。
http://maven.apache.org/settings.html根据文档,可以将用户特定的设置复制到.m2文件夹或在maven安装下。如果开发人员更改机器或获取新的用户标识,则必须手动将这些属性复制到这些较新的机器。存储库中用户特定的maven设置
是否有可能将用户特定的设置信息存储在存储库本身(比如说SVN),并以某种方式让mvn脚本在启动时加载它。
如果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>
不,用户设置的重点是将它们存储在Maven项目之外。但是,没有什么能够阻止您创建自己的svn存储库并将您的配置文件存储在那里。您可以编写一些shell脚本来从该存储库引导一个新的工作站,但这取决于您多久这样做才能使其值得。
我建议您设置自己的存储库,如Archiva,Nexus或Artifactory。这将获得您的依赖关系/插件,然后您可以使用mirror明确指定明确只需要一个存储库(您在网络上设置的存储库)。因此,无论何时开发人员需要为多个开发人员更换机器或依赖关系,内部镜像可用作回购,您的依赖/插件将立即下载到您的本地存储库
我们还有一种情况,某些机器用户ID在几个开发人员之间共享,这使得问题更加严重。然后,每次他们想要使用该机器时,我都必须为不同的用户使用不同的settings.xml文件。 – Sam 2010-03-09 06:51:46