2014-05-08 2 views
0

Je suis un peu nouveau sur maven et j'ai rencontré un problème que je ne peux pas résoudre seul.Maven - comment reconstruire un module de numéro de révision git sur la construction d'un module

J'ai écrit un module simple pour un grand projet qui suit le numéro de révision de git, ajoute un horodatage et saute ces propriétés dans un fichier .properties. Ce projet est juste un fichier pom.xml, pas de classes java et un fichier project.properties. Je voulais ajouter ce module en tant que dépendance au fichier principal du projet pom.xml, mais il n'est reconstruit qu'une seule fois (puisque Maven ne détecte aucun changement, il ne le reconstruit pas à nouveau).

Comment forcer la reconstruction de ce module à chaque fois qu'un module du projet est reconstruit? Puis-je le faire dans le fichier projet pom.xml, ou est-ce que je le mets d'une manière ou d'une autre dans Jenkins? Ou peut-être que j'ai abordé ce problème d'une manière complètement incorrecte?

est ici le fragment de mon fichier pom.xml:

<build> 
    <plugins> 
    <!-- enable ${timestamp} variable --> 
    <plugin> 
     <groupId>com.keyboardsamurais.maven</groupId> 
     <artifactId>maven-timestamp-plugin</artifactId> 
     <version>1.0</version> 
     <configuration> 
     <propertyName>timestamp</propertyName> 
     <timestampPattern>dd.MM.yyyy HH:mm</timestampPattern> 
     </configuration> 
     <executions> 
     <execution> 
      <goals> 
      <goal>create</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    <!-- enable JGit plugin --> 
    <plugin> 
     <groupId>ru.concerteza.buildnumber</groupId> 
     <artifactId>maven-jgit-buildnumber-plugin</artifactId> 
     <version>1.2.7</version> 
     <executions> 
     <execution> 
      <id>git-buildnumber</id> 
      <goals> 
      <goal>extract-buildnumber</goal> 
      </goals> 
      <phase>initialize</phase> 
     </execution> 
     </executions> 
    </plugin> 
    <!-- write project properties to file --> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>properties-maven-plugin</artifactId> 
     <version>1.0-alpha-2</version> 
     <executions> 
     <execution> 
      <phase>prepare-package</phase> 
      <goals> 
      <goal>write-project-properties</goal> 
      </goals> 
      <configuration> 
      <outputFile>${basedir}/target/classes/project.properties</outputFile> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Cheers, Jony

Répondre

0

D'accord, problème résolu (grâce à deng de #maven sur irc.codehaus.org). En ce moment j'ai le pom principal et deux modules: version-tracker et commun. Dans le pom principal je fais une dépendance à la version-tracker, et dans le pom du module commun j'ajoute le pom principal en tant que parent (par conséquent, hérite de la dépendance à la version-tracker).

A ce stade, je lance mvn clean package -pl :common -am et mon fichier project.properties est mis à jour à chaque fois. Merci, deng :)

J'ai encore d'autres problèmes, mais celui-ci est résolu :)

Questions connexes