我正在开发一个Maven插件并且我收到错误:No mojo definitions found for plugin: my.plugin:my-artifact-id
但是只有我{p}添加了<packaging>maven-plugin</packaging>
。如果我发表评论或删除它,我的插件编译就好了。
这是我的项目到目前为止的样子:
Structure:
- pom.xml
- src
- main
- java
- my.plugin
- MyMojo.java
- // some other classes
在MyMojo.java
:
@Mojo(name = "mygoal")
public class MyMojo extends AbstractMojo {
@Parameter
private String someParameter;
public void execute() throws MojoExecutionException {
//code here
}
// other methods
}
在我的pom
:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>my-artifact-id-parent</artifactId>
<groupId>my.plugin</groupId>
<version>0.7-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>my-artifactid</artifactId>
<name>My Plugin Name</name>
<packaging>maven-plugin</packaging>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.3.9</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.2.2</version>
</dependency>
</dependencies>
</project>
据我了解,有必要将其包含在内,以便我将此插件作为另一个项目的依赖项导入。是这样吗?
我已尝试使用skipErrorNoDescriptorsFound
,如other posts中所述。这允许我的插件进行编译,但是当我尝试将其导入另一个项目并使用它时,另一个项目找不到目标mygoal
。
我很感激有关这个问题的任何指导。感谢。