如何在 Maven 生成的 jar 中包含特定文件夹?
How to include specific folder in the Maven generated jar?
我有以下 Maven 项目结构:
${basedir}/
- pom.xml
- lib/
- dependency1.jar
- dependency2.jar
- ...
- src/
- main/..
- test/..
- target/
- classes/..
- blah/
- uggh/
如何修改 pom 文件以将整个 lib 文件夹(及其内容)包含在生成的输出 jar 中?
此文件夹包含不能成为 Maven 存储库一部分的第三方 jar。
使用maven-jar-plugin
将依赖项从lib复制到你的fat jar
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>your.main.class</mainClass>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
为了指定确切的 jar 位置,请在 <build>
下的 <plugin>
中包含以下内容:
<configuration>
<outputDirectory>
${project.basedir}/../build/jars
</outputDirectory>
</configuration>
我有以下 Maven 项目结构:
${basedir}/
- pom.xml
- lib/
- dependency1.jar
- dependency2.jar
- ...
- src/
- main/..
- test/..
- target/
- classes/..
- blah/
- uggh/
如何修改 pom 文件以将整个 lib 文件夹(及其内容)包含在生成的输出 jar 中?
此文件夹包含不能成为 Maven 存储库一部分的第三方 jar。
使用maven-jar-plugin
将依赖项从lib复制到你的fat jar
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>your.main.class</mainClass>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
为了指定确切的 jar 位置,请在 <build>
下的 <plugin>
中包含以下内容:
<configuration>
<outputDirectory>
${project.basedir}/../build/jars
</outputDirectory>
</configuration>