如何使用 Maven 创建包含依赖项的自定义 zip 文件
How to create custom zip file including dependencies using Maven
我是 Maven 的新手,需要创建一个“自定义”zip,其中基本上包含:
- 一个罐子和我的 类
- 我用来构建的一些(但不是全部)依赖项:这些是在 Maven 中声明的(例如,这些不是在项目中管理的本地副本)
所需的 ZIP 文件将具有以下结构:
- 元信息/
- 一些自定义- descriptor.xml
- 库/
- myLib.jar
- dependency1.jar
- dependency2.jar
到目前为止,我知道程序集插件是交易工具,但我不知道如何执行这两个步骤:
- 为二进制文件创建 jar
- 将此 jar 与一些特定的依赖项一起添加
我不确定我是否理解了所有内容。
但是我认为你必须先复制依赖项(之后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>
我是 Maven 的新手,需要创建一个“自定义”zip,其中基本上包含:
- 一个罐子和我的 类
- 我用来构建的一些(但不是全部)依赖项:这些是在 Maven 中声明的(例如,这些不是在项目中管理的本地副本)
所需的 ZIP 文件将具有以下结构:
- 元信息/
- 一些自定义- descriptor.xml
- 库/
- myLib.jar
- dependency1.jar
- dependency2.jar
到目前为止,我知道程序集插件是交易工具,但我不知道如何执行这两个步骤:
- 为二进制文件创建 jar
- 将此 jar 与一些特定的依赖项一起添加
我不确定我是否理解了所有内容。 但是我认为你必须先复制依赖项(之后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>