注釈を使用して Maven プラグインを作成しようとしています。私のプラグイン宣言は次のようになります。
@Mojo(name = "compile", defaultPhase = LifecyclePhase.COMPILE, requiresProject = true, threadSafe = false)
public class CompileMojo extends AbstractMojo
そして、プラグインをコンパイルするpomファイルにこれがあります:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.2</version>
<configuration>
<!-- see http://jira.codehaus.org/browse/MNG-5346 --> <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
<id>mojo-descriptor</id>
<goals>
<goal>descriptor</goal>
</goals>
</execution>
</executions>
</plugin>
maven は、プラグインがコンパイル フェーズにバインドされていることを確認するように見えます。
mvn help:describe -DartifactId=jvmbasic-maven-plugin -DgroupId=com.khubla.jvmbasic -Dgoal=compile -Ddetail
[INFO] Mojo: 'jvmbasic:compile'
jvmbasic:compile
Description: jvmBASIC compiler
Implementation: com.khubla.jvmbasic.jvmbasicmojo.CompileMojo
Language: java
Bound to phase: compile
Available parameters:
sourceDir
where to find the sources
targetDir
target dir
verbose
verbose
モジョを明示的に呼び出すと、次のように動作します。
mvn jvmbasic:compile
pomファイルで実行セクションを使用すると、それも機能します。ただし、mojo が自動的にコンパイル フェーズにバインドされることを期待していたので、
mvn clean compile
自動的に実行されます。明らかな何かが欠けていますか?
実際のソースコードは次のとおりです。
https://github.com/teverett/jvmBASIC/tree/master/jvmbasicmojo