能够创建包含其他jar文件的jar文件
使清单文件的创建和维护变得容易。
#1 楼
对于创建胖罐来说,jarjar是一个出色的工具,因为它易于使用,维护良好并且具有良好的插件支持。许多通常需要重新打包的库(例如ASM)也建议使用此方法。否则,Maven或Gradle之类的构建管理器应立即为您提供所需的功能。您应该能够依赖于构建配置文件来打包资源。#2 楼
如果您希望将应用程序及其库JAR打包为一个JAR文件,则可以考虑使用BSD许可的One-Jar。 One-Jar使用自定义的类加载器从主JAR文件中的JAR加载,而jarjar(基于其文档)将所有类压缩为一个JAR文件(无内部JAR),并根据需要修改类文件。根据您的应用程序,One-Jar的方法可能比jarjar的方法更好(或更糟)。
#3 楼
我认为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中。如果需要外部Jars,则可以将其添加为新的依赖项(在本节中)。
要管理Manifest.MF,只需看一下这篇文章,他们会解释如何使用
maven-jar-plugin
。官方文档在这里。
评论
我们在谈论什么样的复杂性? Apache Maven在构建过程中自动构建了我所有的.jar文件(及其清单)。PKZIP? (或Info-ZIP…)
@Darth Android实际上,我经常需要在项目中使用ant
@demongolem:您到底想创建哪种jar?列出所有“困难”。
@Nicolas Raoul首先,将罐子包装到罐子中时发生类路径问题。该用例本身在大多数情况下都会受到干扰。