当前位置: 首页 > 知识库问答 >
问题:

基本maven插件项目不工作,Mojo插件描述符不生成

羊舌诚
2023-03-14

我正在学习创建maven插件的教程,在运行mvn install时会出现错误。信息抱怨我没有所需的mojo描述符,而注释应该为我生成它们。我正在运行Maven3.0.5并使用intellij作为我的IDE。以下是我的主要课程:

@Mojo(name = "modify-connector")
public class ComplianceMojo extends AbstractMojo {

    @Parameter
    private String artifactId;

    @Parameter
    private String version;

    @Override
    public void execute() throws MojoExecutionException, MojoFailureException {
        File jar = new File(getPluginContext().get("project.build.directory") + "/"
                + getPluginContext().get("project.build.finalname") + "/" + artifactId + "-" + version);
        if(jar.exists()){
            getLog().info("The file exists! " + jar.getAbsolutePath());
        } else {
            getLog().info("The file does not exist: " + jar.getAbsolutePath());
        }
    }
}

这是我的pom.xml

<?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>mysql-jdbc-compliance-maven-plugin</groupId>
    <artifactId>mysql-jdbc-compliance-maven-plugin</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>maven-plugin</packaging>

    <dependencies>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-annotations</artifactId>
            <version>3.2</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

</project>

注意:我必须单独添加注释依赖项,因为主插件api不包含这些类。当我在我的项目上运行mvn install时,输出如下:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.867s
[INFO] Finished at: Wed Sep 25 17:45:55 EST 2013
[INFO] Final Memory: 8M/244M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-plugin-plugin:2.9:descriptor (default-descriptor) on project mysql-jdbc-compliance-maven-plugin: Error extracting plugin descriptor: 'No mojo definitions were found for plugin: mysql-jdbc-compliance-maven-plugin:mysql-jdbc-compliance-maven-plugin.' -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

共有1个答案

公孙慎之
2023-03-14

这可能与Maven中的一个未解决问题有关:https://issues.apache.org/jira/browse/mng-5346

对于我的插件项目,我可以通过添加maven-plugin-plugin的显式执行来解决问题:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-plugin-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <!-- see http://jira.codehaus.org/browse/MNG-5346 -->
                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
                </configuration>

                <executions>
                    <execution>
                        <id>mojo-descriptor</id>
                        <goals>
                            <goal>descriptor</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

但更详细的解决方案请参阅JIRA中的评论!

 类似资料:
  • 问题内容: 我正在遵循创建Maven插件的教程,并且无法运行mvn install而不会出现错误。该信息抱怨说,当注释应为我生成它们时,我没有所需的mojo描述符。我正在运行Maven 3.0.5,并使用intellij作为我的想法。这是我的主班: 这是我的pom.xml 注意: 我必须单独添加注释依赖项,因为主插件api不包含这些类。当我在项目上运行mvn install时,输出如下: 问题答案

  • 目标是创建一个单一的ZIP文件,但将Maven程序集插件的配置拆分成一个通用的、更具体的描述符。 但是,当两个自定义描述符具有唯一ID时,将创建两个ZIP文件,每个文件都包含预期的内容。当ID相同时,只执行最后一个描述符(或覆盖之前的内容)。 我尝试的是不可能的,还是我错过了一个选项,比如“追加到现有ZIP”,而不是“总是创建新ZIP”?

  • 我正在使用用于Oracle12c数据库的Liquibase maven插件,但在运行update命令时出现以下错误: 我看到了与此问题相关的堆栈溢出帖子,其中建议对sqlnet.ora文件进行更改,但以下命令通过使用完全相同的changelog在命令行中工作很好: java-jar~/.m2/repository/org/liquibase/liquibase-core/3.5.3/liquiba

  • 我尝试了正确安装Maven的教程,但每当我尝试运行命令“mvn archetype:generate”时,总是会出现这个错误。您是否尝试在cmd和netbeans中运行,错误是相同的。我已经搜索,但我只出现问题或代理或目录。

  • 但随后构建完全失败,就好像它完全停止识别Java一样。我遇到了许多错误,例如: 这是否意味着Mojo的AspectJ Maven插件不支持JDK9+?我很感激你能帮我解决这个问题。

  • 我需要对maven依赖插件进行更改,以满足我的组织中的独特要求。 我已经从http://maven.apache.org/plugins/maven-dependency-plugin/download.cgi 当我查看它的pom时,我看到它定义了一个父pom,如下所示: 这让我明白,这个项目不能独立构建,至少不能是我拥有的版本。 当试图运行mvn清洁安装无论如何我得到以下错误: 无法下载工件:无