使用maven程序集构建具有依赖性的jar并将其捆绑在tar.gz中

时间:2016-07-14 12:40:09

标签: java maven maven-assembly-plugin

我想构建一个可执行jar,需要将它与tar.gz文件中的一些脚本文件捆绑在一起,因为我正在使用maven程序集,如下所示

的pom.xml

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <finalName>${final.jar.name}</finalName>
                <appendAssemblyId>false</appendAssemblyId>
                <archive>
                    <manifest>
                        <mainClass>path.to.main.class</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <descriptors>${project.basedir}/assembly.xml</descriptors>
            </configuration>
            <executions>
                <execution>
                    <id>trigger-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

assembly.xml

<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>connection-ai-jira-integration-assembly</id>
<includeBaseDirectory>false</includeBaseDirectory>
<formats>
    <format>tar.gz</format>
</formats>
<files>
    <file>
        <source>${project.build.directory}/${project.build.finalName}.jar</source>
        <outputDirectory>/lib/</outputDirectory>
        <filtered>true</filtered>
    </file>
</files>
<fileSets>
    <fileSet>
        <directory>${basedir}/script/</directory>
        <includes>
            <include>*.*</include>
        </includes>
        <outputDirectory>/script/</outputDirectory>
        <filtered>true</filtered>
    </fileSet>
</fileSets>

但是当我执行build时,jar会被复制到tar.gz文件但是大小不同而且已经损坏。有人可以指出我在误解的地方,提前谢谢。

0 个答案:

没有答案