Maven 2 存储库中特定于用户的maven设置

Maven 2 存储库中特定于用户的maven设置,maven-2,Maven 2,根据文档,特定于用户的设置可以复制到.m2文件夹或maven安装下。如果开发人员更改了一台机器或获得了一个新的用户id,则必须手动将这些属性复制到这些较新的机器上 是否可以将特定于用户的设置信息存储在存储库本身(比如SVN)中,并在启动时以某种方式让mvn脚本加载它 不,拥有用户设置的全部目的是将它们存储在maven项目之外。但是,没有什么可以阻止您创建自己的svn存储库并将配置文件存储在那里。您可以编写一些shell脚本来从该存储库引导一个新的工作站,但这实际上取决于您这样做的频率,以使其有价

根据文档,特定于用户的设置可以复制到.m2文件夹或maven安装下。如果开发人员更改了一台机器或获得了一个新的用户id,则必须手动将这些属性复制到这些较新的机器上


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

不,拥有用户设置的全部目的是将它们存储在maven项目之外。但是,没有什么可以阻止您创建自己的svn存储库并将配置文件存储在那里。您可以编写一些shell脚本来从该存储库引导一个新的工作站,但这实际上取决于您这样做的频率,以使其有价值。

我建议您设置自己的存储库,如Archiva、Nexus或Artifactory。它将获取您的依赖项/插件,然后您可以使用它明确地指定一个要使用的存储库(您在网络上设置的存储库)。因此,无论何时开发人员更改机器或多个开发人员需要依赖项,内部镜像都可以用作repo,如果
settings.xml
的内容不是特定于用户的(例如对于
镜像
),您的依赖项/插件将立即下载到您的本地存储库中,您可以使用一个定制的
conf/settings.xml
将整个Maven安装存储在SVN中,并让开发人员从SVN获取它,将其“安装”到一台新机器上,如本文所述


如果
settings.xml
的内容确实是特定于用户的(例如,它包含密码等秘密内容),那么它必须位于
~/.m2
中,并且您必须以某种方式使其在新位置可用。如果开发人员登录到另一台计算机,则可以使用“”。如果开发人员获得了另一个id,那么您真的必须复制它。技术解决方案可能取决于所需的保密级别

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

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

我们还有一种情况,即某些机器用户ID在两个开发人员之间共享,这使得问题更加严重。然后,每当不同的用户想要使用该机器时,我必须为他们使用不同的settings.xml文件。