【问题标题】:Extending maven plugin扩展maven插件
【发布时间】:2013-02-12 23:18:42
【问题描述】:

我正在尝试使用 maven-assembly-plugin 生成一个 zip 文件程序集。我只剩下两个问题,我想知道是否可以仅通过配置来解决,但作为最后的手段,我也在考虑编写自己的 maven 插件来扩展 maven-assembly-plugin

缺少的两块是

  1. 将每个与包含模式匹配的依赖项放入其自己的outputDirectory
    这是我组装的相关部分

    <moduleSet>
        <binaries>
            <dependencySets>
                <dependencySet>
                    <outputDirectory>module</outputDirectory>
                    <useTransitiveDependencies>false</useTransitiveDependencies>
                    <includes>
                        <include>com.test.feature.*:*:jar</include>
                    </includes>
                </dependencySet>
            </dependencySets>
            <unpack>false</unpack>
        </binaries>
    </moduleSet>
    

    这会将groupId为com.test.feature.*的模块的所有依赖项放在一个名为module的文件夹中。这对我有用,就像这样

    module/
       com.test.feature.firstModule.jar
       com.test.feature.secondModule.jar
    

    我需要一种将每个匹配的依赖项移动到其自己的文件夹的方法,希望文件夹名称是依赖项的 artifactId(虽然不是强制性的)

    firstModule/
       com.test.feature.firstModule.jar
    secondModule/
       com.test.feature.secondModule.jar
    

    我知道我可以为每个依赖项创建一个dependencySet,但这样做的想法是尽可能地面向未来。如果我为每个创建一个,我需要记住在未来为 com.test.feature 下的每个新工件创建一个新集。我最大(但盲目)的希望是某种属性 ${dependencyName} 将被每个依赖项替换,然后我可以在 outputDirectory 中使用它

  2. 生成一个包含依赖项及其文件夹信息的 xml 文件

    <module dir="firstModule" version="1.0-SNAPSHOT />
    <module dir="secondModule" version="2.1-SNAPSHOT />
    

    生成的 xml 将成为 zip 程序集的一部分

这两件事,或者其中之一,可以用原版组装插件完成吗?如果没有,是否可以创建一个扩展另一个插件?我刚刚看到了创建插件from scratch 的教程,永远不要只为标准插件之一添加功能

【问题讨论】:

    标签: maven maven-plugin maven-assembly-plugin


    【解决方案1】:

    第一季度: 使用artifactId 作为outputDirectory 的值:

    <outputDirectory>module/${artifact.artifactId}</outputDirectory>
    

    第二季度: 我认为没有现成的解决方案。编写你自己的插件;)

    【讨论】:

      猜你喜欢
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 2020-08-19
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多