2

我正在编写一个 Maven 3 插件,它为另一个应用程序构建插件。插件基本上是一个带有一些精美清单的 JAR 文件。编译后的类需要进行后处理,插件才能与主机应用程序的生产版本一起使用。不幸的是,处理后的插件版本不适用于主机的调试版本。因此,我需要生成两个工件:带有分类器的原始类debug和作为主要工件的后处理版本。

我有一个可用的 Maven 插件,它定义了一个具有自己生命周期映射的新包装类型。但是,为了创建debug工件,我需要jar:jar使用classifier属性集进行调用。我还没有找到一种方法来从生命周期映射中更改 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 问题似乎与我正在寻找的东西相同,但它没有任何答案。这是我最初用来创建生命周期映射的文档。大量谷歌搜索没有出现任何似乎相关的内容,但我无法找到足够具体的搜索词。

4

0 回答 0