如何将 Maven 项目打包成包含 jar 文件的 zip 文件
How to package a Maven project in zip file with jar files inside
小介绍
我是 maven 的新手,我遇到了这个问题。
我的项目结构如下所示:
|--root
|--bin
|-- some bash scripts
|--config
|-- some .properties files
|--j2ee-apps
|-- some web related files
|--META-INF
|-- MANIFEST.MF
|--src
|-- main
|-- java
|-- test
|-- java
目标
执行后 mvn package
我必须得到具有以下结构的 .zip 文件:
|--zip
|--bin
|-- some bash scripts
|--config
|-- config.jar <-- jar with all .properties files inside
|--j2ee-apps
|-- some web related files
|--META-INF
|-- MANIFEST.MF
|--lib
|-- classes.jar <-- jar with all .class files inside (from src folder)
我尝试过使用 maven-assembly-plugin,但没有找到适合我的示例。
您的assembly.xml应该看起来像
<assembly>
<id>zip</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<unpack>false</unpack>
<scope>runtime</scope>
<outputDirectory>lib</outputDirectory>
<useProjectArtifact>false</useProjectArtifact>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/lib</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.basedir}/bin</directory>
<outputDirectory>/bin</outputDirectory>
<filtered>true</filtered>
<includes>
<include>**/*.*</include>
</includes>
</fileSet>
<!-- add fileSet entries for other folders under root -->
</fileSets>
</assembly>
我不确定是否有任何方法可以将 META-INF 放在 zip 下而不是项目的 jar 文件中。
要更改 jar 的名称,您需要 maven-jar-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<finalName>new_jar_name</finalName>
</configuration>
</plugin>
小介绍
我是 maven 的新手,我遇到了这个问题。 我的项目结构如下所示:
|--root
|--bin
|-- some bash scripts
|--config
|-- some .properties files
|--j2ee-apps
|-- some web related files
|--META-INF
|-- MANIFEST.MF
|--src
|-- main
|-- java
|-- test
|-- java
目标
执行后 mvn package
我必须得到具有以下结构的 .zip 文件:
|--zip
|--bin
|-- some bash scripts
|--config
|-- config.jar <-- jar with all .properties files inside
|--j2ee-apps
|-- some web related files
|--META-INF
|-- MANIFEST.MF
|--lib
|-- classes.jar <-- jar with all .class files inside (from src folder)
我尝试过使用 maven-assembly-plugin,但没有找到适合我的示例。
您的assembly.xml应该看起来像
<assembly>
<id>zip</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<unpack>false</unpack>
<scope>runtime</scope>
<outputDirectory>lib</outputDirectory>
<useProjectArtifact>false</useProjectArtifact>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/lib</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.basedir}/bin</directory>
<outputDirectory>/bin</outputDirectory>
<filtered>true</filtered>
<includes>
<include>**/*.*</include>
</includes>
</fileSet>
<!-- add fileSet entries for other folders under root -->
</fileSets>
</assembly>
我不确定是否有任何方法可以将 META-INF 放在 zip 下而不是项目的 jar 文件中。
要更改 jar 的名称,您需要 maven-jar-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<finalName>new_jar_name</finalName>
</configuration>
</plugin>