为整个团队共享相同的 settings.xml maven 配置

Sharing the same settings.xml maven configuration for the whole team

我们有一个非常大的 maven 配置,有很多存储库、插件存储库和各种其他东西。

我们总是不得不手动 copy/paste 将相同的文件发送给其他团队成员,然后替换用户名和密码。

我很好奇是否有人知道共享 settings.xml 文件的自动化解决方案?

将从 git 中提取配置或部分配置的东西?

如果我必须自己编写,我可能会使用脚本和 git 来提取更改、进行替换并替换当前设置文件。

不过还是看看有没有人做过这个比较好。

我们还为每个用户设置了不同的代理用户名和密码。 我们同时使用 nexus 和代理。

我们使用 Nexus,它代理所有需要的存储库。这意味着 settings.xml 中的存储库和插件存储库部分只有一个条目(指向 public 组)。

此外,adding/changing 存储库可以由 Nexus 管理员完成,并使用标准 settings.xml.

自动传播给所有人(大约 140 名开发人员)

您还获得了缓存优势,因为工件仅从互联网下载一次并由 Nexus 缓存,这可以加快您的构建。

Tomtit 非常适合这类任务,只需将这个小助手添加到您的 scm 中即可:

.tom/mvn-settings.pl6

#!perl6

my $user = prompt "username ";
my $password = prompt "password ";

directory '/tmp/mvn';

# load settings template from other repository

git-scm 'https://scm/repo/mvn-files', %( to => '/tmp/mvn' );

template-create 'settings.xml', %(
  source => ( slurp '/tmp/mvn/settings.tmpl' ),
  mode => '644',
  variables => %(
    user => $user,
    password => $password
  ),
);

运行吧:

tom mvn-settings