web-dev-qa-db-fra.com

Comment obtenir le numéro de révision de Subversion avec Maven?

J'aimerais mettre un numéro de révision sur la page principale de WebApp, comment puis-je faire cela à l'aide de Maven?

P.s. Sa question de deux parties, comment obtenir un numéro de révision et comment l'écrire dans le fichier sélectionné dans le projet.

34
IAdapter

Le plugin de numéro de construction Maven est la voie à suivre. Un exemple de comment utiliser c'est ici:

http://www.mojohaus.org/buildnumber-maven-plugin/usage.html

Vous l'utiliseriez avec le plugin Maven Jar pour imprimer le numéro de validation SVN à votre manifeste.

Ceci est une meilleure solution que d'utiliser un fichier contenant le numéro de validation SVN, car cela ajoute plus de pièces mobiles que nécessaire.

26
James Kingsbery

Si vous utilisez Subversion, vous pouvez utiliser ce plugin pour rendre le numéro de révision SVN disponible en tant que propriété maven.

http://code.google.com/p/maven-svn-revision-number-plugin/

Je combine cela avec JAR Plugin pour ajouter la révision SVN au fichier manifeste.mf pour notre pot et notre guerre.

7
Jeff Caddel

À condition que vous disposiez de l'application de ligne de commande SVN, vous pouvez utiliser le code suivant: nous l'utilisons dans nos projets (légèrement modifiés).

<build>
  <plugins>
    <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <executions>
        <execution>
          <phase>generate-resources</phase>
          <goals>
            <goal>run</goal>
          </goals>
          <configuration>
            <tasks>
              <mkdir dir="${project.build.directory}/generated-web-resources/svn"/>
              <exec dir="${basedir}" executable="svn"
                  failifexecutionfails="false"
                  output="${project.build.directory}/generated-web-resources/svn/svnver.jsp">
                <arg line="info"/>
              </exec>
            </tasks>
          </configuration>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <artifactId>maven-war-plugin</artifactId>
      <configuration>
        <webResources>
          <resource>
            <directory>${project.build.directory}/generated-web-resources/svn</directory>
          </resource>
        </webResources>
        <warSourceExcludes>**/_svn/**</warSourceExcludes>
      </configuration>
    </plugin>
  </plugins>
</build>
4
David Rabinowitz

Vous ne dites pas la plate-forme que vous utilisez, et vous me pardonnerez pour être inconnu avec Maven. Je suppose que cela peut invoquer des programmes externes et vous savez comment faire cela.

Si sur une plate-forme UNIX, vous devez utiliser la commande Program SVNversion et tuyer sa sortie - qui est le numéro de version du chemin de fonctionnement spécifié - à un fichier, que vous pouvez intégrer dans votre page Web comme vous le voyez.

svnversion --help

montre ce qu'il peut faire en détail.

S'il s'agit de Windows et que vous utilisez Tortoisesvn Client, il existe un excellent programme de ligne de commande Windows fournie avec celui-ci appelé SubWREV. Cet utilitaire élargira les macros dans un fichier texte que vous fournissez avec divers détails du référentiel SVN que vous utilisez: vous permettez de contrôler le format de la sortie. Tous très pratique. Le fichier d'aide pour cela est ici: http://tortoisisvn.net/docs/release/tortoiseisesvn_en/tsvn-subwcrev.html

1
willw