Authentication Maven服务器身份验证作为配置文件属性
我正在尝试在生成服务器上设置共享身份验证系统。 我们有几个maven项目,它们声明了应该如何针对我们拥有的不同团队进行部署(每个团队都有自己的身份验证用户/密码): 如果通过使用团队的用户/密码替换属性来修改服务器身份验证,则一切正常 标签不接受值作为属性吗 其他人如何设置他们的构建系统以实现同样的目标 谢谢你的帮助Authentication Maven服务器身份验证作为配置文件属性,authentication,maven-2,settings,profiles,Authentication,Maven 2,Settings,Profiles,我正在尝试在生成服务器上设置共享身份验证系统。 我们有几个maven项目,它们声明了应该如何针对我们拥有的不同团队进行部署(每个团队都有自己的身份验证用户/密码): 如果通过使用团队的用户/密码替换属性来修改服务器身份验证,则一切正常 标签不接受值作为属性吗 其他人如何设置他们的构建系统以实现同样的目标 谢谢你的帮助 编辑:我正在使用hudson,我的一个解决方案是安装多次maven2,为每个团队提供重复设置(用户/密码除外),并将每个项目与良好的maven安装联系起来。我必须承认,这个解决方案
编辑:我正在使用hudson,我的一个解决方案是安装多次maven2,为每个团队提供重复设置(用户/密码除外),并将每个项目与良好的maven安装联系起来。我必须承认,这个解决方案并没有让我着迷……首先,我不知道dep-team1配置文件是如何连接到distributionManagement标签的——它似乎需要发布配置文件才能激活 其次,我的profile元素的结构有点不同(请参阅,其中没有distributionManagement标记)。不确定这是否有区别
<profile>
<id>release-profile</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
</profile>
发布配置文件
中心的
http://central
真的
真的
以下是分发管理:
<project>
<distributionManagement>
<repository>
<id>releases</id>
<url>http://myurl/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://myurl/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>
释放
http://myurl/releases
快照
http://myurl/snapshots
如果您有多个团队,因此有多个身份验证方案,最简单、最直接的方法就是在distributionManagement中使用不同的id。因此,您可以使用team1 repo/team2 repo,而不是rep releases/rep Snapshot(在发布和Snapshot之间分离身份验证通常没有价值……特别是如果您使用具有良好安全控制的
然后在构建机器的设置中,只需为构建服务器的每个团队定义一个用户和密码
这种方法确实有一个缺点,即如果您在单个公司pom中定义回购协议,它将破坏继承性……但如果您有一个团队级pom,这将很容易
另一个想法是,为什么同一台构建机器在进行构建时需要以另一个人的身份登录?那台构建机器不应该拥有大部分的完全访问权限吗?1。如果您不使用maven交付您的项目,那么您当然不需要任何distributionManagement标记。2.当然,在我的交付过程中,所有必需的配置文件都被激活。我确实使用maven交付我的项目,而且它工作正常。起初我也有同样的“错误部署工件”错误,但后来我发现了。我的distributionManagement元素不是概要文件的一部分,而是项目的一部分(顺便说一句,这更符合逻辑)。我们公司有数百个项目,几个研发项目遍布世界各地,因此概要文件中的设置简化了团队之间的共享。但是,所有这些都有助于正确解析服务器登录/传递属性。没错,Brian,实现我们所希望的最简单的方法可能是授予生成机器完全权限,至少可以提供给所有快照repo。每个团队都有自己的证书来发布。我想我们会走这条路。谢谢
<profile>
<id>dep-team1</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<release.user.name>team1-user</release.user.name>
<release.user.password>team1-password</release.user.password>
</properties>
</profile>
Error deploying artifact: Failed to transfer file: http://......./my-project-0.2-20090423.123247-3.pom. Return code is: 401
<profile>
<id>release-profile</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
</profile>
<project>
<distributionManagement>
<repository>
<id>releases</id>
<url>http://myurl/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://myurl/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>