早幾天使用maven-processor-plugin插件做一個很簡單的APT例子的時候出現異常
error:annotation processor xx not found
錯誤:找不到注解處理程序xx
但是processor是存在的!當時沒找到原因。
今天突然想到在maven 調用maven-processor-plugin是在<phase>generate-sources</phase>的時候,而我又習慣同時運行mvn clean install,所以這個時候processor還沒有編譯,於是就報找不到processor錯誤了!
解決方法很簡單,只要讓processor先編譯了。要不把processor放到別的工程里以依賴包的形式加入,要不把maven-processor-plugin插件移到一個profile里,比如
<profiles> <profile> <id>apt</id> <build> <plugins> <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId> <executions> <execution> <id>process</id> <goals> <goal>process</goal> </goals> <phase>generate-sources</phase> <configuration> <outputDirectory>target/generated-sources/java</outputDirectory> <processors> <processor>org.adaikiss.xun.apt.XunProcessor</processor> </processors> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles>
然后先運行mvn clean install,再運行mvn eclipse:clean eclipse:eclipse -Papt或mvn install -Papt