Java Can';如果将打包maven插件添加到pom中,则无法找到Mojo定义

Java Can';如果将打包maven插件添加到pom中,则无法找到Mojo定义,java,maven,maven-plugin,mojo,Java,Maven,Maven Plugin,Mojo,我正在开发一个Maven插件,我得到了一个错误:没有找到插件的mojo定义:my.plugin:my artifact id,但前提是我已经将Maven插件添加到我的pom中。如果我把它注释掉或删除,我的插件就可以编译了 到目前为止,我的项目是这样的: Structure: - pom.xml - src - main - java - my.plugin - MyMojo.java - // some other classes 在My

我正在开发一个Maven插件,我得到了一个错误:
没有找到插件的mojo定义:my.plugin:my artifact id
,但前提是我已经将
Maven插件添加到我的pom中。如果我把它注释掉或删除,我的插件就可以编译了

到目前为止,我的项目是这样的:

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>

. 这允许我的插件进行编译,但当我尝试将其导入另一个项目并使用它时,另一个项目无法找到目标
mygoal


我希望能就此问题提供任何指导。谢谢。

通过命令从archetype创建工作示例插件
mvn archetype:generate-DarchetypeGroupId=org.apache.maven.archetypes-DarchetypeArtifactId=maven archetype插件-DarchetypeVersion=1.2
并与自己的插件进行比较,您缺少对
org.apache.maven:maven核心:3.3.9
的依赖。但我不确定它是如何编译的,因为
AbstractMojo
是从依赖关系中提取出来的。或者可能您没有清洁
?尝试运行
mvn clean install
并查看输出。感谢您的响应。我试着打扫。我还添加了
maven-core:3.3.9
作为我的
pom
的依赖项,得到了与以前相同的错误。这很奇怪。它以前一定编译过,因为当我删除
maven plugin
时,我能够执行
mygoal
,但之后我无法将插件导入其他项目。所以我不知道为什么添加maven插件包突然意味着它找不到我的mojo。通过命令从archetype创建工作示例插件
mvn archetype:generate-DarchetypeGroupId=org.apache.maven.archetypes-DarchetypeArtifactId=maven Archetypeplugin-DarchetypeVersion=1.2
,并与自己的插件进行比较,您缺少依赖项在
org.apache.maven:maven核心:3.3.9
上。但我不确定它是如何编译的,因为
AbstractMojo
是从依赖关系中提取出来的。或者可能您没有清洁
?尝试运行
mvn clean install
并查看输出。感谢您的响应。我试着打扫。我还添加了
maven-core:3.3.9
作为我的
pom
的依赖项,得到了与以前相同的错误。这很奇怪。它以前一定编译过,因为当我删除
maven plugin
时,我能够执行
mygoal
,但之后我无法将插件导入其他项目。所以我不知道为什么添加maven插件包突然意味着它找不到我的魔咒。