1

我正在尝试使用 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 程序集的一部分

这两件事,或者其中之一,可以用香草组装插件完成吗?如果没有,是否可以创建一个扩展另一个插件?我刚刚看到了从头开始创建插件的教程,而不是仅仅向标准插件之一添加功能

4

1 回答 1

0

Q1:用作 parf artifactIdotoutputDirectory的值:

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

Q2: 我认为没有现成的解决方案。编写自己的插件;)

于 2014-01-17T13:24:37.977 回答