我想開發一個定製的Maven插件,我是來自官方的maven文檔教程如下:找不到定製Maven插件目標
http://maven.apache.org/guides/plugin/guide-java-plugin-development.html
然而,當我嘗試用我的插件從不同的項目,我得到如下:
Could not find goal 'generateProtoClasses' in plugin com.myComapny.maven.plugin:myCompany-protobuf-plugin:1.0 among available goals -> [Help 1]
這是我MOJO:
@Mojo(name = "generateProtoClasses", defaultPhase = LifecyclePhase.GENERATE_RESOURCES)
public class CompileProtoClasses extends AbstractMojo {
@Parameter(defaultValue = "mokmok")
private String inputPath;
public void execute() throws MojoExecutionException {
getLog().info("@@@@@@@@@@@@@@@@@@@@@@@");
getLog().info(inputPath);
}
}
這是在使用了插件項目的pom.xml文件摘錄:
<plugin>
<groupId>com.myCompany.maven.plugin</groupId>
<artifactId>legolas-protobuf-plugin</artifactId>
<version>1.0</version>
<configuration>
<inputPath>yoyo</inputPath>
</configuration>
<executions>
<execution>
<goals>
<goal>generateProtoClasses</goal>
</goals>
</execution>
</executions>
</plugin>
雙龍插件項目:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myCompany.maven.plugin</groupId>
<artifactId>myCompany-protobuf-plugin</artifactId>
<version>1.0</version>
<packaging>maven-plugin</packaging>
<name>protobuf-plugin Maven Plugin</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-tools-api</artifactId>
<version>3.2</version>
</dependency>
<!-- dependencies to annotations -->
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.2</version>
<!-- annotations are not needed for plugin execution so you can remove
this dependency for execution with using provided scope -->
<scope>provided</scope>
</dependency>
<!-- generated help mojo has a dependency to plexus-utils -->
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.2</version>
<configuration>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
</plugin>
</plugins>
</build>
</project>
您使用的是maven-plugin-annotations嗎?你可以顯示插件的pom嗎? – khmarbaise 2013-03-13 15:19:17
添加了插件的pom – 2013-03-13 15:20:53
將您的課程名稱更改爲** WhatEverMojo **並重新測試。檢查一下你在課堂上是否有混合案例的問題。 – khmarbaise 2013-03-13 16:24:56