生成包含其他jar文件的jar文件的工具?

软件推荐 软件开发 爪哇
2021-10-15 02:50:49

我正在寻找适合这些要求的 JAR 文件生成器:

  • 能够创建包含其他jar文件的jar文件
  • 使清单文件的创建和维护变得容易。
3个回答

对于创建fat jars ,jarjar是一个出色的工具,因为它易于使用、维护良好并且具有良好的插件支持。许多通常需要重新打包的库(例如 ASM)也建议使用它否则,Maven 或 Gradle 等构建管理器应该为您提供您正在寻找的开箱即用的功能。您应该能够根据构建配置文件打包资源。

如果您希望将应用程序及其库 JAR 打包为一个 JAR 文件,您可以考虑使用 BSD 许可的One-JarOne-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,您可以将其添加为新的依赖项(在该部分中)。

你想管理 Manifest.MF,看看这篇文章,他们解释了如何使用maven-jar-plugin. 官方文档在这里