J'ai un projet maven - c'est un plugin pour jenkins. Il est parent devrait être:Maven: Sélection du projet parent basé sur le profil
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>1.414</version>
</parent>
Mais en même temps, ce plugin peut également être utilisé pour hudson, sans changer une ligne de code. Mais le projet parent pour qu'il devrait être:
<parent>
<groupId>org.jvnet.hudson.plugins</groupId>
<artifactId>hudson-plugin-parent</artifactId>
<version>2.0.1</version>
</parent>
Puis-je spécifier 2 profils différents pour cela et les utiliser pour construire ou plug-in pour jenkins hudson en conséquence? Alors que j'appelle quelque chose comme ça:
mvn package -P jenkins
ou
mvn package -P hudson
J'ai essayé de définir les propriétés dans les profils, mais ce ne sont pas remplacés par leurs valeurs dans la balise <parent>
. Donc, y a-t-il une autre possibilité de construire un plugin pour les deux, mais avec autant de code et de fichiers communs?
Ajouté: Donc, si je ne peux pas le faire, que dois-je faire? Comment refactoriser? Quelle devrait être la nouvelle structure?
Merci, je vais essayer. Mais de cette façon je dois avoir 2 copies de mon code: dans plugin-jenkins et dans plugin-hudson. Peut-on le faire d'une certaine manière, que je construis hudson basé sur le code jenkins ou vice versa? –
Eh bien, je dirais que vous avez deux projets distincts pour l'emballage de ce (au moins). Comme l'a souligné Karl-Heinz, Hudson et Jenkins se sont séparés et il est probable que les choses qui fonctionnent (encore) ne fonctionneront pas dans un proche avenir. Vous pouvez conserver la majeure partie du code dans un module de base et avoir ensuite les éléments spécifiques à Hudson ou Jenkins dans le module de conditionnement (qui dépend du cœur). Quelque chose dans ce sens devrait résoudre votre problème. – carlspring