2010-01-31 15 views
2

Le plugin maven-animal-sniffer promet de me dire si mon code contient des références aux API Java 1.6 (ou plus récentes). Ceci est important pour ceux d'entre nous qui développent sur MacOSX Snow Leopard (qui a seulement un 1.6 officiel) mais qui ont besoin de livrer à 1.5 environnements. Malheureusement, lorsque j'essaie de l'utiliser, tous les appels d'API Java sont signalés comme des violations.Quelqu'un at-il obtenu le plugin de renifleurs d'animaux pour travailler?

Je ne suis pas la seule personne à rencontrer ce problème, mais apparemment beaucoup d'autres personnes réussissent.

Si quelqu'un a un extrait de POM qui fonctionne à cet effet, cela apporterait une réponse très utile.

Notez que j'essaie d'utiliser la version publiée sur le central (1.4) et non celle (1.2) sur org.jvnet.

Répondre

4

Je l'ai utilisé avec succès la configuration suivante pour un projet qui devait fonctionner avec une machine virtuelle Java 1.4:

<project> 
    ... 
    <properties> 
    <jdk.level>1.4</jdk.level> 
    </properties> 
    ... 
    <build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
      <configuration> 
      <source>${jdk.level}</source> 
      <target>${jdk.level}</target> 
      </configuration> 
     </plugin> 
     ... 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.jvnet</groupId> 
     <artifactId>animal-sniffer</artifactId> 
     <version>1.2</version> 
     <executions> 
      <execution> 
      <id>animal-sniffer</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>check</goal> 
      </goals> 
      <configuration> 
       <signature> 
       <groupId>org.jvnet.animal-sniffer</groupId> 
       <artifactId>java${jdk.level}</artifactId> 
       <version>1.0</version> 
       </signature> 
      </configuration> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
      <groupId>org.jvnet.animal-sniffer</groupId> 
      <artifactId>java${jdk.level}</artifactId> 
      <version>1.0</version> 
      <type>sig</type> 
      </dependency> 
     </dependencies> 
     </plugin> 
     ... 
    </plugins> 
    </build> 
</project> 
+0

OK, je vais essayer. – bmargulies

+0

Je n'arrive pas à comprendre ce que va trouver. – bmargulies

+0

OK, j'ai compris. et il fonctionne. Tout ce qui est faux est faux dans la version 1.4 sur le central, et pas ici. – bmargulies

2

Après avoir combattu avec les différentes versions d'animaux renifleur et la collecte des éléments d'information relatifs à d'ici et là, j'ai finalement réussi à l'utiliser =)

Pour une liste des signatures disponibles et leurs coordonnées maven, voir http://mojo.codehaus.org/signatures/. Il n'est pas nécessaire de déclarer une dépendance à une signature.

L'exemple suivant donne la configuration correcte pour un manuel (mvn propre compilation animal renifleur: vérifier) ​​vérifier contre Java 1.5:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>animal-sniffer-maven-plugin</artifactId> 
    <version>1.6</version> 
    <configuration> 
     <signature> 
      <groupId>org.codehaus.mojo.signature</groupId> 
      <artifactId>java15</artifactId> 
      <version>1.0</version> 
     </signature> 
    </configuration> 
</plugin> 

L'exemple suivant, en plus de rendre possible de vérifier les signatures manuellement, exécutera également automatiquement l'objectif de vérification des renifleurs d'animaux pendant la phase de vérification:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>animal-sniffer-maven-plugin</artifactId> 
    <version>1.6</version> 
    <configuration> 
     <signature> 
      <groupId>org.codehaus.mojo.signature</groupId> 
      <artifactId>java15</artifactId> 
      <version>1.0</version> 
     </signature> 
    </configuration> 
    <executions> 
     <execution> 
      <id>animal-sniffer</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>check</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin>