Java Can';如果将打包maven插件添加到pom中,则无法找到Mojo定义
我正在开发一个Maven插件,我得到了一个错误: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
没有找到插件的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插件包突然意味着它找不到我的魔咒。