Создание и выполнение пользовательских плагинов Maven - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь создать собственный плагин без параметров, ссылаясь на приведенную ниже ссылку на создание простых инструкций по созданию mojo с помощью apache.

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

Но я не могу запуститьТо же самое, используя цель Maven.Пожалуйста, предложите, что мне не хватает.Поскольку я новичок в maven, и у меня не так много уроков по созданию пользовательских плагинов для mavem.Любые предложения по этой теме будут полезны для меня.Заранее спасибо.

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.");
    }
}

Я пытаюсь запустить pom.xml, используя команду package и команду mvn install.

1 Ответ

0 голосов
/ 06 октября 2018

Как правило, вы не должны выполнять плагин цели в плагин, который вы пытаетесь создать.Причина, по которой вы не можете собрать плагин с mvn install, заключается в том, что вы настроили maven, чтобы ожидать, что плагин уже будет собран.

Этот раздел принадлежит другому POM-файлу, а не файлу POM плагина.

<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 в этом проекте.

...