第一步:利用maven-jar-plugin生成当前工程的jar,该jar包包含manifest的main-class和class-path参数。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.zkteco.timecube.zkcloud.phoenix.core.App</mainClass> </manifest> <!-- 添加当前目录和子目录lib --> <manifestEntries> <Class-Path>. ./lib</Class-Path> </manifestEntries> </archive> </configuration> </plugin>
第二步:添加组装描述文件,assembly.xml
<?xml version="1.0" encoding="UTF-8"?> <assembly 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/xsd/assembly-1.0.0.xsd"> <id>package</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>true</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>/</outputDirectory> <includes> <include>*.jar</include> </includes> <excludes> <exclude>*sources.jar</exclude> </excludes> </fileSet> </fileSets> <dependencySets> <dependencySet> <outputDirectory>lib</outputDirectory> <scope>runtime</scope> </dependencySet> </dependencySets> </assembly>
第三步:添加maven-assembly-plugin插件,不可以再配置maven-assembly-plugin的<manifest>标签,不然会覆盖maven-jar-plugin生成的manifes文件。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/assemble/package.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
生成的manifest.mf文件的class-path结果:
Class-Path: . ./lib ./lib/slf4j-api-1.7.10.jar ./lib/slf4j-log4j12-1.7.10.jar ./lib/log4 j-1.2.17.jar ./lib/commons-lang3-3.3.2.jar
由此可以看出<manifestEntries>标签先于<manifest>执行
相关推荐
在Java开发过程中,将项目打包成可执行的JAR(Java Archive)文件是常见的操作,这使得代码可以方便地分发、部署和运行。本文将详细介绍如何将Java工程打包成可执行的JAR文件。 首先,确保你有一个完整的Java工程,...
在Java开发中,将项目打包成可执行的JAR(Java ARchive)文件是非常常见的需求,这使得我们可以方便地分发和运行程序。Eclipse作为一款强大的Java集成开发环境,提供了内置的功能来创建可执行的JAR包。以下是详细...
"Java 中使用 Maven Shade Plugin 打可执行 Jar 包" 概述:Maven Shade Plugin 是 Maven 的一个插件...Maven Shade Plugin 是一个功能强大且方便的插件,可以帮助开发者快速地将 Java 项目打包成一个可执行的 Jar 包。
- 在Eclipse中,可以通过`Export` -> `Java` -> `Runnable JAR file`,然后选择`Package required libraries into generated JAR`选项来合并依赖。 - IntelliJ IDEA也有类似的功能,可以在`Artifacts`设置中配置。...
在Java开发中,常常需要将程序打包成可执行的JAR文件,以便于分发和运行。然而,有些Java应用依赖于多个外部库,单纯使用JAR文件可能无法直接运行,因为缺少了必要的类库。这时,FATJAR插件便发挥了重要作用,它允许...
2. **One-JAR**:这是一款独立的打包工具,可以将应用和其依赖打包成一个可执行的JAR。虽然不是IDE内的插件,但使用起来也很方便。 3. **Apache Maven**:如果你的项目是Maven管理的,可以使用Maven的`assembly`或`...
Java打Jar包是Java开发过程中常见的一项操作,它将多个类文件、资源文件等打包成一个可执行的JAR(Java Archive)文件,方便分发、部署和运行。本篇文章将详细阐述Java打Jar包的方法,并通过实例进行演示。 1. **...
在Java开发过程中,将项目打包成JAR文件是一项常见的任务,尤其当需要分发或部署一个独立的应用程序时。在MyEclipse这样的集成开发环境中,这个过程可以通过几个简单步骤完成,同时还能方便地引入第三方库。本文将...
9. **其他打包工具对比**:Fat Jar与其他打包工具(如Apache Maven的assembly插件或shade插件)相比,可能在自动化和灵活性上稍显不足,但在简单的项目中,其易用性是一个很大的优点。 10. **持续集成**:如果你的...
Runnable fatjars with built-in dependencies ("jar-with-depenencies.jar") can be found on Maven Central under: http://search.maven.org/#search|ga|1|tudarmstadt.ukp For more information about JWPL, ...
开发者通常会使用像JAR(Java Archive)这样的格式来打包这些文件,便于分发、部署和执行。 在Java编程中,以下几个关键知识点是相关的: 1. **类与对象**:Java是面向对象的语言,所以程序是由类定义的,而类实例...
- `mvn jar:jar`:仅打包为 JAR 文件。 - `mvn eclipse:eclipse`:生成 Eclipse 工程文件。 3. **Linux 命令** - `cd`:改变当前工作目录。 - `ll`:列出目录中的文件,通常显示详细信息。 - `mv`:移动或...
13. **Java开发工具包(JDK)**:包含Java编译器javac、JVM以及开发工具,如jar工具用于打包和管理类库。 14. **Spring框架**:这是一个流行的Java EE应用程序框架,提供了依赖注入、AOP(面向切面编程)等功能,...
- 可能还有`.jar`文件,这是Java应用程序的可执行格式,包含了编译后的类和必要的资源。 5. **开发环境与编译运行**: - 开发者可能使用IntelliJ IDEA或Eclipse等集成开发环境(IDE)编写代码,利用它们的构建...
1. **src**:存放Java源代码的目录,可能有多个包(package)来组织不同的功能模块。 2. **resources**:存储非代码资源,如配置文件、图片、音频、数据库连接字符串等。 3. **docs**:项目文档,包括需求分析、设计...
12. **Java应用程序的部署**:包括JAR文件打包、WAR文件(用于Web应用)以及Spring Boot的可执行JAR等。 以上只是Java编程中的一部分知识点,实际学习和使用Java时,还需要涉及更多高级主题,如反射、设计模式、...
MODAClouds FG 记者填补差距报告生成器运行它 java -... 注意:在编译代码时,请在eclipse中做Export->Runnable JAR file->Package required libraries into generate JAR。 从 Maven 编译将报告缺少 font.xml 文件。
16. **编译与打包**: 项目可能使用Maven的`mvn compile`、`mvn package`命令进行编译和打包成JAR或WAR文件。 通过分析"ProyectoFinal-master",我们可以推测这是一个包含众多Java技术的综合性项目,开发者在其中...
6. **构建工具**:Maven和Gradle是两种流行的Java构建工具,它们负责编译源代码、打包成JAR或WAR文件,以及执行自动化测试。Maven使用约定优于配置的方式,而Gradle则提供了更大的灵活性。 7. **包(Package)管理*...
12. **构建工具**:如Maven或Gradle负责构建项目,生成可执行的JAR或WAR文件。 要全面理解"SEP2"项目,我们需要查看源代码本身,分析其类结构、方法逻辑、使用的技术栈以及与其他系统的交互方式。同时,项目可能还...