如果将包装maven-plugin添加到pom,则无法找到Mojo定义

时间:2016-04-26 20:26:11

标签: java maven maven-plugin mojo

我正在开发一个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

我很感激有关这个问题的任何指导。感谢。

0 个答案:

没有答案