6
votes

Réglage du répertoire source généré pour les processeurs d'annotation à Maven

J'essaie de déplacer une construction qui génère des sources utilisant un processeur d'annotation pour maven. J'ai essayé de configurer le plugin Maven-compiler comme suit: xxx pré>

mais Javac échoue avec p> xxx pré>

aussi loin que je peux dire , -s doit être transmis avant que les fichiers source de Javac, mais Maven le transmet après. p>

Comment puis-je passer correctement le drapeau -s code> sur le plugin Maven-compiler? p>


update em>: le Maven-Annotation-plugin ne semble pas fonctionner. p>

Lors de la configuration de p> xxx pré>

exécution échoue avec p>

[INFO] [processor:process {execution: process}]
error: Annotation processor 'xxx.annotation.EnforceJavaBeansConventionsProcessor' not found
1 error


1 commentaires

Merci de mentionner le plugin maven-annotation. Cela a fonctionné pour moi.


7 Réponses :


4
votes

Je manque peut-être quelque chose mais ne devriez-vous pas:

  1. Générez des sources dans Sources de cible / générées / Traitement d'annotation Code> Au cours de la Génère-Sources Code> Phase? apt-maven-plugin ou Maven-Annotation-plugin pourrait aider. P> Li>

  2. Inclure des sources générées lors de la compilation de sources dans cible / classes code> à l'aide code> dans le Maven-compiler-plugin ou le Maven-Build-Helper-Helper-Helper-Plugin ? P> Li> ol>

    EDIT: strong> Où est xxx.annotation.enforcejavabeansConventionsProcesseur code> Situé? Vous n'avez pas besoin d'ajouter dépendances code> à la configuration du plug-in Maven-Annotation comme documenté sur le UTILISATION Page? P>

    <plugin>
      <groupId>org.bsc.maven</groupId>
      <artifactId>maven-processor-plugin</artifactId>
      <version>1.0-SNAPSHOT</version>
      <executions>
        <execution>
          <id>process</id>
          <goals>
            <goal>process</goal>
          </goals>
          <phase>generate-sources</phase>
          <configuration>
            <outputDirectory>src/main/generated</outputDirectory><!-- PROCESSOR OUT DIR --> 
            <processors><!-- LIST OF PROCESSOR CLASS(S) -->
              <processor>org.bsc.apt.BeanInfoAnnotationProcessor</processor>
            </processors>
          </configuration> 
        </execution>
      </executions>
      <dependencies/><!-- ADD DEPENDENCIES HERE IF REQUIRED -->
    </plugin>
    


3 commentaires

Oui je devrais. Comment devrais-je effectuer l'étape 1?


Utilisez-vous le plugin Maven-APT-APT ou le plug-in Maven-Annotation?


J'échège maintenant le plug-in Maven-Annotation - depuis que j'utilise les API Java 6, mais je suis apparemment tenu de répertorier le processeur que j'utilise, et je ne peux pas les transmettre correctement. Est-il possible de lier le plugin Maven-Compiler à la phase de génération-sources?



5
votes

Le plug-in utilisait le séparateur de classe Windows Hurcoded pour construire la classe de classe. Il a donc échoué sur ma machine Linux.

patchs soumis:


1 commentaires

Bon à savoir. Merci pour les patchs :)



5
votes

Pas exactement une réponse à votre question, mais d'intérêt:

https://issues.apache.org/jira/browse/mcompiler-75

J'ai bien peur qu'il y ait un certain nombre de problèmes à l'aide de JSR 269 à Maven, au moins avec le plugin compilateur par défaut.


1 commentaires

Avec Maven-Compiler-Plugin 2.2, vous n'avez pas besoin de faire quoi que ce soit pour obtenir 269 pour découvrir les processeurs par défaut.



1
votes

Une des raisons pour cela pourrait être que Java_Home $ pointe vers la version JDK 1.5 au lieu de 1,6. (sur Windows Check% Java_Home% bien sûr)


0 commentaires

0
votes

J'ai le même problème ...


xxx

utilisez-vous Java 5? xxx


xxx

maintenant, mvn install devrait fonctionner: -)


0 commentaires

1
votes

J'ai eu ce problème avec GWTP Source générer des annotations de traitement apt

C'est parce que je n'ai pas défini de version pour le plug-in compilateur, ma configuration finale: xxx


0 commentaires

0
votes

J'utilise le Maven-processor-plugin code> comme suit:

<plugin>
    <groupId>org.bsc.maven</groupId>
    <artifactId>maven-processor-plugin</artifactId>
    <version>2.2.4</version>
    <executions>
      <execution>
        <id>process-my-annotations</id>
        <goals>
          <goal>process</goal>
        </goals>
        <phase>generate-test-sources</phase>
        <configuration>
          <processors>
            <processor>x.y.z.MyAnnotationProcessor</processor>
          </processors>
          <outputDirectory>${project.build.directory}/generated-test-sources/test-annotations</outputDirectory>
          <outputClassDirectory>${project.build.directory}/test-classes</outputClassDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>


0 commentaires