利用gradle shadowjar构建包含依赖的JAR包

本文档介绍了如何使用Gradle的shadow插件来构建一个包含所有依赖的JAR包,特别适用于向SPARK集群提交作业的情况。通过执行`clean shadowJar`命令,可以生成一个不仅包含源码还包含flume和kafka类的JAR文件。要了解更多配置详情,建议查阅shadow官方文档。
摘要由CSDN通过智能技术生成

正常情况下,gradle构建的jar包是不包含依赖的,只包含项目源码。

可是有些情况下我们希望JAR包中也包含相关依赖,譬如说向SPARK集群提交作业的时候,运行JAVA命令的时候。

这篇文件介绍一种方便的构建assemble jar的方法

apply plugin :'java'
apply plugin :'scala'
apply plugin: 'com.github.johnrengelman.shadow'

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.4'
    }
}

repositories {
    mavenCentral()
}

shadowJar {
   baseName = 'spark-job'
   classifier = null
   version = null
   dependencies {
      include(dependency('org.apache.flume:flume-ng-core:1.7.0'))
  	  include(dependency('org.apache.spark:spark-streaming-kafka-0-10_2.11:2.0.2'))
  	  include(dependency('org.apache.flume:flume-ng-sdk:1.7.0'))
  	  include(dependency('org.apache.kafka:kafka-clients:0.10.1.0'))
   }
}

dependencies {
	compile group: &#
在JDK 11中使用JavaFX打包成JAR文件,您需要执行以下步骤: 1. 构建JavaFX应用程序。确保您的项目是基于JavaFX的,并且所有依赖项都已正确设置。 2. 使用Maven或Gradle构建工具。这些工具可以帮助您管理项目的依赖项,并提供打包成JAR的插件。对于JavaFX项目,通常推荐使用Maven的maven-jar-plugin或GradleshadowJar插件。 3. 配置插件以包含JavaFX库。由于JDK 11开始,JavaFX不再是JDK的一部分,因此需要在构建过程中包含JavaFX运行时库。对于Maven,可以通过添加依赖到`<dependencies>`中,并且配置`<configuration>`来包含JavaFX模块。对于Gradle,可以通过添加依赖到`implementation`中,并使用shadowJar插件来包含所有依赖项。 4. 打包应用程序。执行构建工具的打包命令,例如`mvn package`对于Maven或`gradle shadowJar`对于Gradle,这将生成一个包含所有必需依赖项的可执行JAR文件。 5. 运行打包后的JAR文件。使用Java命令运行JAR文件,确保指定了`--module-path`参数指向JavaFX运行时库,并且使用`--add-modules`参数添加您的模块信息。 示例Maven配置段落: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>your.main.class</mainClass> </manifest> </archive> </configuration> </plugin> ``` 注意:由于JDK 11和JavaFX 11+的模块化特性,您需要确保在运行打包后的JAR时使用`java --module-path`来指定JavaFX的模块路径。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值