J'essaye de configurer un système d'authentification partagé sur un serveur de construction. Nous avons plusieurs projets de Maven qui déclare comment le déploiement doit se faire en ce qui concerne les différentes équipes que nous avons (chaque équipe a son propre utilisateur d'authentification/mot de passe):Authentification du serveur Maven en tant que propriétés de profil
<profile>
<id>release-profile</id>
<distributionManagement>
<repository>
<id>rep-releases</id>
<name>rep-releases</name>
<url>http://somewhere-releases</url>
</repository>
<snapshotRepository>
<id>rep-snapshots</id>
<name>rep-snapshots</name>
<url>http://somewhere-snapshots</url>
</snapshotRepository>
</distributionManagement>
</profile>
Je déclare dans le settings.xml l'authentification aux serveurs déclarés comme suit:
<servers>
<server>
<id>rep-releases</id>
<username>${release.user.name}</username>
<password>${release.user.password}</password>
</server>
<server>
<id>rep-snapshots</id>
<username>${release.user.name}</username>
<password>${release.user.password}</password>
</server>
</servers>
Enfin, en fonction des projets que je veux déployer J'ai plusieurs profils définis dans le settings.xml du serveur de build:
<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>
Le problème est que lorsque vous faites un deploy du projet, je suis une erreur d'authentification (HTTP 401) comme ce qui suit:
Error deploying artifact: Failed to transfer file: http://......./my-project-0.2-20090423.123247-3.pom. Return code is: 401
Si je modifie l'authentification du serveur en remplaçant les propriétés avec l'utilisateur/mot de passe l'équipe, tout fonctionne bien.
Ne pas les balises <serveurs> <serveur> accepter les valeurs en tant que propriétés?
Comment les autres installent-ils leur système de construction pour atteindre le même résultat?
Merci pour votre aide.
Edit: J'utilise hudson, une solution pour moi peut être d'installer plusieurs maven2 de temps et ont des paramètres dupliqués (sauf l'utilisateur/mot de passe) pour chaque équipe et attacher chaque projet à la bonne installation de Maven. Je dois admettre que cette solution ne m'enchante pas ...
Vous avez raison Brian, le moyen le plus simple d'obtenir ce que nous voulons est probablement de donner au moins tous les droits à la machine de construction pour livrer tous les dépôts de snapshots. Chaque équipe garde ses propres informations d'identification pour effectuer les sorties. Je pense que nous irons dans cette direction. Merci. –