如何使用 Maven 创建包含依赖项的自定义 zip 文件

How to create custom zip file including dependencies using Maven

我是 Maven 的新手,需要创建一个“自定义”zip,其中基本上包含:

所需的 ZIP 文件将具有以下结构:

到目前为止,我知道程序集插件是交易工具,但我不知道如何执行这两个步骤:

我不确定我是否理解了所有内容。 但是我认为你必须先复制依赖项(之后jar里面没有)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
           <manifest>
                <addClasspath>true</addClasspath>
                <mainClass>com.demo.App</mainClass>
                <classpathPrefix>lib/</classpathPrefix>
            </manifest>
        </archive>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-dependencies</id>
                <phase>package</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <includeScope>runtime</includeScope>
                    <outputDirectory>${project.build.directory}/lib/</outputDirectory>
                    <excludeScope>test</excludeScope>
                </configuration>
            </execution>
     </executions>
</plugin>

之后,您可以使用带有描述符 xml 文件的程序集插件,如下所示:

<assembly>
    <id>zip</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/lib</directory>
            <outputDirectory>lib</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory></outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>