首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven自定义插件的创建和执行

Maven自定义插件的创建和执行
EN

Stack Overflow用户
提问于 2018-10-06 06:33:55
回答 1查看 29关注 0票数 0

我正在尝试创建一个自定义参数较少的插件,参考apache在下面的链接中创建简单mojo的说明。

https://maven.apache.org/guides/plugin/guide-java-plugin-development.html#

但我无法使用maven goal运行相同的程序。请建议我遗漏了什么。因为我刚接触maven,没有太多关于自定义mavem插件创建的教程。关于这个话题的任何建议都会对我有所帮助。提前谢谢。

代码语言:javascript
复制
pom.xml

<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>sample.plugin</groupId>
  <artifactId>hello-maven-plugin</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>maven-plugin</packaging>

  <name>Sample Parameter-less Maven Plugin</name>

  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>3.0</version>
    </dependency>

    <!-- dependencies to annotations -->
    <dependency>
      <groupId>org.apache.maven.plugin-tools</groupId>
      <artifactId>maven-plugin-annotations</artifactId>
      <version>3.4</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

<build>
    <plugins>
      <plugin>
        <groupId>sample.plugin</groupId>
        <artifactId>hello-maven-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>
        <executions>
          <execution>
            <goals>
              <goal>sayhi</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

GreetingMojo.java

package sample.plugin.hello_maven_plugin;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Mojo;

/**
 * Says "Hi" to the user.
 *
 */
@Mojo( name = "sayhi")
public class GreetingMojo extends AbstractMojo
{
    public void execute() throws MojoExecutionException
    {
        getLog().info( "Hello, world." );
        System.out.println("My first maven plugin.");
    }
}

我正在尝试使用package命令和mvn install命令来运行pom.xml。

EN

回答 1

Stack Overflow用户

发布于 2018-10-06 08:17:09

一般来说,你不应该在你试图构建的插件中执行插件目标。不能使用mvn install构建插件的原因是,您已经将maven配置为期望插件已经构建。

此部分属于不同的POM文件,而不是插件POM文件。

代码语言:javascript
复制
<build>
  <plugins>
    <plugin>
      <groupId>sample.plugin</groupId>
      <artifactId>hello-maven-plugin</artifactId>
      <version>1.0-SNAPSHOT</version>
      <executions>
        <execution>
          <goals>
            <goal>sayhi</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

从插件POM中删除此部分后,可以运行mvn install在本地安装插件。安装后,如果您真的想要,可以将该部分重新添加到POM中,但理想情况下,您应该将其添加到一个完全不同的maven项目中,并在该项目中执行maven。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52674039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档