在生命周期映射更改默认的魔力配置(Change default mojo configuration

2019-07-20 09:28发布

我正在写一个Maven 3插件,插件构建其他应用程序。 一个插件基本上是一些花哨的体现一个JAR文件。 编译的类需要进行后处理,该插件与主机应用程序的生产版本工作。 不幸的是,插件的处理后的版本将不与主机的调试版本工作。 因此,我需要产生两个构件:原料类与分类debug和后处理的版本作为主神器。

我有一个工作Maven插件定义有自己的生命周期映射一个新的包装类型。 为了创建debug神器,不过,我需要调用jar:jarclassifier属性集。 我一直没能找到一种方法来更改配置为从生命周期的映射的Mojo执行。 是否可能? 我将不得不让每个人都使用随我的插件超级POM?

作为参考,这是我的相关部分components.xml

<?xml version="1.0" encoding="utf-8" ?>
<component-set>
  <components>
    <!-- snip other components, including ArtifactHandler -->
    <component>
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
      <role-hint>my-packaging</role-hint>
      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
      <configuration>
        <lifecycles>
          <lifecycle>
            <id>default</id>
            <phases>
              <!-- snip other phases -->
              <package>
                org.apache.maven.plugins:maven-jar-plugin:jar
              </package>
            </phases>
          </lifecycle>
        </lifecycles>
      </configuration>
    </component>
  </components>
</component-set>

我需要执行等同于这个POM片段:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <executions>
    <execution>
      <id>debug-jar</id>
      <phase>package</phase>
      <goal>jar</goal>
      <configuration>
        <classifier>debug</classifier>
      </configuration>
    </execution>
  </executions>
</plugin>

我发现了一个SO问题 ,这似乎是我在寻找同样的事情,但它没有任何答案。 这是文档 ,我用来创建摆在首位的生命周期映射。 重型谷歌搜索还没有止跌回升事情,似乎有关,但我无法想出足够具体的搜索字词。

文章来源: Change default mojo configuration in lifecycle mapping