当前位置: 首页 > 面试题库 >

基本的Maven插件项目无法正常工作,无法生成Mojo插件描述符

谷梁子昂
2023-03-14
问题内容

我正在遵循创建Maven插件的教程,并且无法运行mvn
install而不会出现错误。该信息抱怨说,当注释应为我生成它们时,我没有所需的mojo描述符。我正在运行Maven
3.0.5,并使用intellij作为我的想法。这是我的主班:

@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

问题答案:

在阅读了Gyro发布的《Jira
Issue
》之后,我在pom中添加了以下几行,并且所有内容都进行了很好的编译。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <goalPrefix>mysql-jdbc-compliance</goalPrefix>
            </configuration>
            <executions>
                <execution>
                    <id>default-descriptor</id>
                    <goals>
                        <goal>descriptor</goal>
                    </goals>
                    <phase>process-classes</phase>
                </execution>
                <execution>
                    <id>help-descriptor</id>
                    <goals>
                        <goal>helpmojo</goal>
                    </goals>
                    <phase>process-classes</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>


 类似资料:
  • 我正在学习创建maven插件的教程,在运行mvn install时会出现错误。信息抱怨我没有所需的mojo描述符,而注释应该为我生成它们。我正在运行Maven3.0.5并使用intellij作为我的IDE。以下是我的主要课程: 这是我的pom.xml 注意:我必须单独添加注释依赖项,因为主插件api不包含这些类。当我在我的项目上运行mvn install时,输出如下:

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

  • 我有一个项目,它不是spring应用程序。我正在尝试在其中使用AspectJ注释。注释类是从我的另一个jar中引用的。我在下面提到了POM的插件部分。我的构建成功了,但是Maven的控制台输出从来没有提到任何关于AspectJ插件的内容,而且当我运行我的项目时,注释也不起作用。 我几个小时来一直想弄清楚出了什么问题,但还是搞不清楚。 这是Jar中定义的两个依赖项,我试图将它用作方面库。 [DEBU

  • 我们在4人的小团队中工作。我们使用docker来部署我们的服务。其中一个服务是java Spring Boot项目,它是在使用maven构建docker映像后部署的。要制作Spring Boot服务的docker映像,我们使用。 有趣的是,我的同事在建立SpringBoot服务的docker形象方面没有问题。我得到了maven的错误信息: 我试图从,重新启动docker并删除所有图像。 后来我尝试

  • 将文件选取器^1.13.3添加到“我的依赖项”后,项目无法生成此错误 失败:构建失败,但有例外。 错误:任务执行失败:app:mergeDebugJavaResource 执行com.android.build.gradle.internal.tasks.时发生故障$ActionFacade文件'com.android.builder.files.ZipCentralDirectory@7dfb7

  • 我首先通过执行生成了一个gwt maven项目- mvn原型:生成-Darch etypeGroupId=org.codehaus.mojo-Darch etypeartifactId=gwt-maven-plugin-Darch etypeVersion=2.7.0 在那之后,pom。xml如下所示: 然后我通过内置的eclipse函数将这个项目导入eclipse——导入现有的Maven项目。