Maven程序集插件:获取文件并将其移到正确的位置

问题描述 投票:0回答:1

要创建发行版,我决定使用maven程序集插件。但就我而言,我还需要来自其他项目的资源或仅仅是工件。让我们在这里使用一个简单的示例,我有信心以后可以自己解决更复杂的示例。

我们在本地存储库服务器上有一个zip工件,已配置maven使用。该zip文件具有简单的层次结构,并包含一个本机代码包装器,一个jar文件,自述文件和示例配置。对于分发包,我们需要前两个。包装程序应放在bin /目录中,而jar文件应放在lib /目录中。但是,仅在组装步骤中才需要zip文件。我不需要它来编译或测试。在阅读有关依赖范围的文档时,我没有找到与此特定用例相匹配的文档。其他问题在下面的代码中描述:当我不将zip指定为依赖项时,以后将无法使用工件。而且我无法将解压缩的文件放在正确的位置。

也许我的整个方法是错误的?我希望听到您的意见。

pom.xml

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <descriptors>
            <descriptor>src/assembly/dist.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <id>dist</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

dist.xml

 <dependencySets>
    <dependencySet>
        <includes>
            <!-- does only work when specified as a dependency in pom.xml -->
            <include>my:archive</include>
        </includes>
        <outputDirectory>unpacked</outputDirectory>
        <unpack>true</unpack>
        <unpackOptions>
            <includes>
                <include>wrapper</include>
                <include>extraLib.jar</include>
                <!-- can't move or rename -->
            </includes>
        </unpackOptions>
        <useProjectArtifact>false</useProjectArtifact>
    </dependencySet>
  </dependencySets>
java maven maven-assembly-plugin
1个回答
0
投票

我通过直接使用maven-dependency-plugin而不是maven-assembly插件做了几次类似的事情。

http://maven.apache.org/plugins/maven-dependency-plugin/unpack-mojo.html

这里是另一个类似的问题,Unzip dependency in maven

© www.soinside.com 2019 - 2024. All rights reserved.