Configuration de la configuration du traitement des annotations Java 6 pour le compilateur eclipse avec maven

Quelle est la meilleure façon de configurer la configuration du compilateur de projet eclipse pour les processeurs d’annotation Java 6?

Ma solution consiste à configurer manuellement les fichiers org.eclipse.jdt.apt.core.prefs et factorypath . C’est un peu lourd:

  • Référencez le fichier jar du processeur dans le fichier factorypath
  • Configurez le répertoire de sortie du processeur d’annotations eclipse (org.eclipse.jdt.apt.genSrcDir propriété org.eclipse.jdt.apt.core.prefs dans org.eclipse.jdt.apt.core.prefs )
  • Ajouter le répertoire de sortie du processeur d’annotation eclipse en tant que dossier source

Un problème est que les sources générées par éclipse seront compilées avec maven. Seule la maven clean comstack est fiable car elle supprime les fichiers source générés par Eclipse. (Les fichiers source générés par Eclipse et javac peuvent être désynchronisés.)

Existe-t-il une meilleure solution pour configurer maven sans les fichiers source générés par éclipse au niveau du chemin source de maven?

   ${project.build.directory}/eclipse    org.codehaus.mojo build-helper-maven-plugin 1.4   add-source generate-sources  add-source    ${eclipse.generated.src}       org.apache.maven.plugins maven-eclipse-plugin    .factorypath <![CDATA[   ]]>    .settings/org.eclipse.jdt.apt.core.prefs          

Mise à jour: Vous pouvez essayer d’utiliser le plugin apt-maven . Il propose actuellement trois objectives:

  • apt-process Exécute apt sur les sources du projet.
  • apt: test-process Exécute apt sur les sources de test du projet.
  • apt: eclipse Génère des fichiers Eclipse pour une intégration appropriée.

Vous pouvez configurer les objectives à exécuter dans le cadre de votre construction comme suit:

  ...  ...  org.codehaus.mojo apt-maven-plugin 1.0-alpha-2    process test-process     ...  ...  

Par défaut, le répertoire de sortie est défini sur ${project.build.directory}/generated-sources/apt ,

Il existe un plugin Jira contre le compilateur ouvert pour append le support APT pour Java 6, vous pouvez aller voter pour cela si c’est quelque chose que vous voulez voir dans les futures versions.

J’utilise http://code.google.com/p/maven-annotation-plugin/ qui est plus simple à configurer. Vous pouvez l’utiliser de deux manières:

  • générer des sources lors de la compilation (configuration ci-dessous)
  • générer des sources “à la main” pour src / main / created et les conserver sur SCM
   org.bsc.maven maven-processor-plugin   process  process  generate-sources  -encoding ${project.build.sourceEncoding}      org.bsc.maven maven-processor-plugin   process-test  process-test  generate-test-sources  -encoding ${project.build.sourceEncoding}      org.apache.maven.plugins maven-comstackr-plugin 2.3.1  1.6 1.6 ${project.build.sourceEncoding}  -proc:none   

Il existe une solution plus simple dans Eclipse Juno (je ne suis pas sûr des versions précédentes). Dans Préférences / Maven / Traitement des annotations, il existe trois modes de traitement des annotations. Il est désactivé par défaut, mais j’ai testé les deux autres options et a fonctionné comme un charme pour moi. Ainsi, vous n’avez pas besoin de configurer le traitement APT pour chaque projet ni de modifier son pom.xml.