我寫了一個自定義插件,然後我安裝了它。然後我修改了我想使用自定義插件的項目的pom.xml
。當我直接調用我的插件目標時,插件目標成功執行,但是當我嘗試mvn compile
我的自定義插件目標未被執行時。可能是什麼原因?Maven默認編譯沒有選擇自定義插件目標
我插件的pom.xml
:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx.plugins.maven</groupId>
<artifactId>datanucleus-enhance-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Datanucleus-enhance Maven Plugin</name>
<dependencies>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.2</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
我加
我的項目中使用自定義插件如下:
<!-- enhance JDO classes -->
<plugin>
<groupId>com.sukantu.plugins.maven</groupId>
<artifactId>datanucleus-enhance-maven-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<configuration>
<jdoClassDirList>
<param>target/${project.artifactId}-${project.version}/WEB-INF/classes/</param>
</jdoClassDirList>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
我跟着段從行家指南網站裝上的Mojo到構建生命週期:https://maven.apache.org/guides/plugin/guide-java-plugin-development.html
以下命令成功調用我的插件目標: mvn com.xxx.plugins.maven:datanucleus-enhance-maven-plugin:enhance
下面的命令沒有成功打電話給我的插件目標: mvn compile
感謝任何投入!
你在哪裏定義了插件配置?/或/? –
我之前嘗試使用pluginManagement,但後來發現如何解決此問題。請參閱我發佈的答案。謝謝。 – CoolDude