Gradle + Jenkins + Artifactory Maven Repo?

j'ai un projet Java, construire avec Gradle, en utilisant le serveur CI de Jenkins, et je voudrais publier sur un serveur artificiel, en utilisant des artefacts compatibles avec Maven. Le projet est à l'aide de Git. J'aimerais aussi utiliser les fonctionnalités de gestion de versions de Jenkins si possible.

C'est très déroutant. Il y a au moins cinq plugins, avec de nombreuses fonctionnalités redondantes qui se chevauchent. Certains plugins semblent remplacer d'autres. Certains plugins semblent en nécessiter d'autres.

pour information, les cinq plugins semblent être:

1) Jenkins Artifactory Plugin https://wiki.jenkins-ci.org/display/JENKINS/Artifactory + Plugin

2) Grad "maven" Plugin http://www.gradle.org/docs/current/userguide/maven_plugin.html

3) Grad "maven-publish" Plugin http://www.gradle.org/docs/current/userguide/publishing_maven.html

4) Gradle "artifactory" Plugin https://www.jfrog.com/confluence/display/RTF/Gradle + Artifactory+Plugin

5) Grad "artifactory-publish" Plugin http://www.jfrog.com/confluence/display/RTF/Gradle+1.6+Publishing+Artifactory+Plugin

Quelle est la meilleure façon d'organiser cela?

si J'utilise le Plugin Jenkins Artifactory avec aucun des autres plugins mentionnés, j'obtiens une erreur:

No publish configurations specified for project ':' and the default 'archives' configuration does not exist.
Cannot publish pom for project ':my-great-app' since it does not contain the Maven plugin install task and task ':my-great-app:artifactoryPublish' does not specify a custom pom path.

je suppose que je dois utiliser maven ou maven-publish dans la construction.gradle?

maven-publish est étiqueté comme le successeur incubateur de la maven plugin. Quel est-il? Comment est-elle stable?

comment l'utilisation d'un des plugins de Gradle Artifactory se compare-t-elle aux plugins standard de maven publishing vs utilisant le plugin Jenkins?

13
demandé sur user2684301 2014-03-16 09:32:56

1 réponses

  • Gradle Artifactory plugins: Gradle peut déployer des artefacts de construction et construire des informations directement, sans besoin dans le serveur CI en utilisant l'un des plugins Artifactory.
    • artifactory plugin fonctionne avec maven plugin et publie configurations, généré par maven plugin.
    • artifactory-publish le plugin fonctionne avec maven-publish plugin et publie publications généré par maven-publish plugin.
  • Jenkins Artifactory plugin fonctionne en deux modes:
    • fournissant une interface utilisateur pour outrepasser les paramètres, spécifiés dans artifactory ou artifactory-publish plugins dans Gradle build script.
    • ajouter et configurer artifactory plugin au script Gradle s'il n'est pas là.
    • il fournit également la gestion des versions (pour les deux modes).

Donc, voici ce que vous devez décider:

  • si vous utilisez l'un des plugins Gradle. Notre recommandation is-use it (la configuration suivie en versions dans le script de construction est un avantage par rapport à la configuration qui N'utilise que L'interface utilisateur.
  • quel plugin vous voulez utiliser -- maven ou maven-publish. Alors que la dernière est encore "en incubation", elle est beaucoup plus flexible que la première. Une fois que vous savez avec quel plugin maven vous voulez utiliser, Sélectionnez le plugin artifactory approprié.
  • vous avez besoin du plugin Artifactory Jenkins dans l'un ou l'autre sens si vous voulez utiliser la fonctionnalité release, Vérifiez (ou décochez)) le projet utilise la case à cocher' Artifactory Gradle Plugin'.
18
répondu JBaruch 2014-03-16 13:40:21