我正在寻找适合这些要求的 JAR 文件生成器:
- 能够创建包含其他jar文件的jar文件
- 使清单文件的创建和维护变得容易。
我正在寻找适合这些要求的 JAR 文件生成器:
对于创建fat jars ,jarjar是一个出色的工具,因为它易于使用、维护良好并且具有良好的插件支持。许多通常需要重新打包的库(例如 ASM)也建议使用它。否则,Maven 或 Gradle 等构建管理器应该为您提供您正在寻找的开箱即用的功能。您应该能够根据构建配置文件打包资源。
如果您希望将应用程序及其库 JAR 打包为一个 JAR 文件,您可以考虑使用 BSD 许可的One-Jar。One-Jar 使用自定义类加载器从主 JAR 文件中的 JAR 加载,而(基于其文档)jarjar 将所有类扁平化为一个 JAR 文件(无内部 JAR),并根据需要修改类文件。
根据您的应用程序,One-Jar 的方法可能比 jarjar 的方法更好(或更差)。
我认为 Maven 是可以做任何事情的工具(通过一些配置)。
示例:我有一个文件夹(./lib),其中有我所有的 JAR 文件,我只有以下小的 pom.xml 文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.mycompany.test</groupId>
<artifactId>bigjar</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<url>http://www.mycompany.com</url>
<prerequisites>
<maven>3.1.0</maven>
</prerequisites>
<!-- Put external dependencies here -->
<dependencies>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<resources>
<resource>
<directory>lib</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
只需运行mvn clean install
,然后您将所有 lib/*.jar 文件放在一个新的 JAR 中。
如果您需要外部 Jar,您可以将其添加为新的依赖项(在该部分中)。