Maven 3.0.4 - jalankan pemroses anotasi setelah kompilasi

Saya ingin menjalankan prosedur dasar berikut dalam proyek Maven 3.0.4 saya. Saya sudah menyiapkan semua dasar-dasarnya dan tidak mengalami masalah apa pun, tetapi saya mengalami masalah pada langkah #3. Untuk beberapa alasan, solusi mendasarnya luput dari perhatian saya, karena sepertinya sesuatu yang sudah sangat jelas.

  1. Jalankan pembersihan/instalasi dasar (tanpa pemrosesan anotasi)
  2. Meminta agar pembangunan situs dijalankan
  3. Sebelum pembangunan situs dimulai, jalankan pemrosesan anotasi pada kelas yang telah dikompilasi menggunakan kelas pemroses anotasi yang telah dikompilasi pada langkah awal

Saya mencoba menyiapkan tujuan pemrosesan anotasi sebagai berikut:

<plugin>
  <groupId>org.bsc.maven</groupId>
  <artifactId>maven-processor-plugin</artifactId>
  <executions>
    <execution>
      <id>process</id>
      <goals>
        <goal>process</goal>
      </goals>
      <phase>pre-site</phase>
      <configuration>
        <outputDirectory>${basedir}/target/generated-documentation</outputDirectory>
        <processors>
          <processor>com.mydomain.MyFancyAnnotationProcessor</processor>
        </processors>
      </configuration>
    </execution>
  </executions>
</plugin>

Untuk beberapa alasan ini sepertinya tidak berhasil. Saya merasa seperti saya melakukan sesuatu yang sangat, sangat konyol yang mencegahnya berhasil.

Saya menggunakan Maven Annotation Plugin alih-alih dasar, Plugin Mojo Apt. Saya tidak keberatan beralih jika seseorang memiliki solusi yang berfungsi dengan solusi itu. Saya mencoba keduanya tanpa ada tanda-tanda keberhasilan. Sekali lagi, rasanya seperti sesuatu yang jelas-jelas saya abaikan.

Kesalahan diterima:

[INFO] diagnostic error: Annotation processor 'com.mydomain.MyFancyAnnotationProcessor' not found
[ERROR] error on execute: error during compilation

person Community    schedule 10.07.2012    source sumber
comment
apa yang khususnya tidak berfungsi? itu tidak berjalan? itu menghasilkan kesalahan? Anda mendapatkan hasil yang salah...?   -  person jtahlborn    schedule 10.07.2012
comment
permintaan maaf - Saya memperbarui entri dengan kesalahan di bagian bawah   -  person    schedule 10.07.2012


Jawaban (1)


Dugaan saya adalah bahwa plugin tersebut tidak menyertakan proyek saat ini di jalur kelasnya. Solusi terbaik adalah dengan memisahkan pemroses anotasi ke dalam (sub-)modulnya sendiri jika memungkinkan. Jika Anda tidak bisa melakukannya, Anda mungkin bisa menambahkan proyek ini sendiri sebagai ketergantungan plugin (menggunakan bagian <dependencies> di bawah node plugin).

Sebagai catatan diagnostik, Anda dapat menjalankan maven dengan argumen '-X' untuk melihat info detail tentang build. Ini akan menunjukkan dengan tepat apa yang ada di classpath ketika plugin dijalankan.

person jtahlborn    schedule 10.07.2012