27 votes

Infrastructure avec maven, Jenkins, Nexus

Nous sommes à l'aide de maven. Je veux mettre en place l'infrastructure, de sorte que construit automatiquement des artefacts serait aller à l'Nexus référentiel. Et puis ils pourraient être utilisés par les développeurs.

J'ai déjà configurer Jenkins avec 1 emploi pour notre projet. Et j'ai créé Nexus sur le même serveur.

Les constructeurs de Pc, j'ai copié par défaut de maven paramètre C:\Users{utilisateur}.m2\settings.xml l'ajout de cette section. Références:

La configuration de Maven à Utiliser un Seul Nexus

Maven Paramètres De Référence

<mirror>
  <!--This sends everything else to /public -->
  <id>nexus</id>
  <mirrorOf>*</mirrorOf>
  <url>http://myserver:8081/nexus/content/groups/public</url>
</mirror>

(Je viens de suivre Référentiel de Gestion avec la Nexus livre)

Quelles sont les prochaines étapes? Devrait Jenkins emploi mvn install? Comment créer Nexus référentiel pour la société des artefacts?

15voto

Ryan Stewart Points 46960

Pour déployer des artefacts de Nexus, vous aurez besoin d'inclure une distributionManagement section dans votre pom. Nexus est livré avec des référentiels spécifiques déjà mis en place pour les instantanés et les rejets. Vous devez donner le chemin d'accès correct à chacun de ceux qui maven va déployer instantané et la libération des artefacts pour le bon repos. Ensuite tout le temps de vous déployer des artefacts--généralement, mvn deploy ou à l'aide de la version plugin maven, les objets seront déployés. Nexus a écrire d'authentification par défaut, vous devez assurez-vous d'ajouter une section serveur avec les informations d'identification correctes pour l'settings.xml de la personne qui sera le déploiement d'artefacts. Jenkins peut être traitée à peu près comme n'importe quel autre utilisateur. Si vous l'avez à faire un deploy que sa construction, puis chaque version sera déployée à la Nexus. Il y a aussi un post-construire l'action pour le déploiement des artefacts dans le cas où vous souhaitez arriver plus tard dans l'Jenkins travail.

14voto

Steve Brown Points 107

Je n'ai pas eu besoin d'apporter de modifications à mes projets pom.xml. Au lieu de cela, dans les jenkins "Actions post-construction", j'ai sélectionné "Déployer les artefacts dans le référentiel Maven", puis sélectionné "Avancé" et défini l'URL du référentiel sur http://nexusserver:8081/nexus/content/repositories/releases et l'ID du référentiel sur deploymentRepo .

Dans le ~/.m2/settings.xml sur la machine jenkins j'ai ajouté

 <settings>
  <servers>
    <server>
      <id>deploymentRepo</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server>
  </servers>
   ...

</settings>
 

12voto

Paul Verest Points 3798

mise à jour de pom.xml

 <distributionManagement>
    ...
    <repository>
      <id>deploymentRepo</id>
      <name>Internal Releases</name>
      <url>http://nexusserver:8081/nexus/content/repositories/releases</url>
    </repository>
    ...
  </distributionManagement>

alors que maven ~/.m2/settings.xml ajouter (c'est de déploiement par défaut de l'utilisateur Nexus)

<server>
  <id>deploymentRepo</id>
  <username>deployment</username>
  <password>deployment123</password>
 </server>

ensuite, mvn deploy

Ensuite, il est possible d'utiliser déployé artefact dans tout projet, tout comme la norme des artefacts. Dans ce cas, ajouter à pom.xml

<!-- company repositories -->
    <repository>
        <id>deploymentRepoReleases</id>
        <name>Releases (Nexus)</name>
        <url>http://nexusserver:8081/nexus/content/repositories/releases/</url>
    </repository>
    <repository>
        <id>deploymentRepoSnapshots</id>
        <name>Snapshots (Nexus)</name>
        <url>http://nexusserver:8081/nexus/content/repositories/snapshots/</url>
    </repository>

Mise à JOUR: plus Tard nous sommes loin de l'Instantané dépôts et ont été à l'aide de maven-release-plugin que seuls besoins des référentiels de type de mise en liberté.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X