转载地址:http://www.gfzj.us/series/gradle/2014/12/12/gradle%E5%B0%8F%E7%B3%BB%E5%88%97(4)--gradle%E6%89%93%E5%8C%85java%E9%A1%B9%E7%9B%AE.html

以gradle小系列所举例子为示例,在此处介绍两种gradle发布java项目的方法:

fat jar方式

该种方法将工程所依赖的jar包等资源都会打到一个可执行jar包中,生成的jar包很大。

在GradleTest项目中,我们对SubPro1进行打包,所以需要修改SubPro1下的build.gradle文件:

jar {

from {

configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }

}

manifest {

attributes 'Main-Class': 'hello.HelloWorld'

}

}

dependencies {

compile project(":SubPro2")

}

上述配置添加了jar task,from是对SubPro1的依赖进行打包,manifest 则生成对main的配置信息,即包hello下的HelloWorld.java是工程入口

在项目GradleTest的根目录下执行命令gradle build,即可生成jar包

使用gradle的application插件

fat jar并不总是一个合适的选择,比如需要依赖跟jar分离、软件能在*nix和windows下都有启动的script等。 那么使用gradle的application插件就可以做到了。

在GradleTest项目中,我们对SubPro1的build.gradle进行如下修改:删除jar task;添加application插件; 配置main class(设置mainClassName的值即可)。修改结果如下:

apply plugin: 'application'

mainClassName = 'hello.HelloWorld'

dependencies {

compile project(":SubPro2")

}

Application插件提供5个tasks实现项目的发布,分别是

run、startScript、installApp、distZip、distTar

假设使用distZip,在GradleTest目录下运行命令gradle distZip,在SubPro1的build/distributions中,可以看到zip文件,其中包含了bin和lib文件夹,bin下有软件启动脚本,lib则是软件jar包和其所有依赖。

gradle打包java项目_gradle打包java项目相关推荐

  1. gradle构建java实例_Gradle构建Java应用程序

    文章摘要 1.运行init,创建 2.执行创建 3.运行应用程序 一.运行init任务 要运行该init任务,请从命令提示符运行以下命令: $ gradle init --type name来自如下: ...

  2. 【JAR包打包为EXE】javafx/java项目(适用jdk1.8)通过Gradle插件打包为exe,包含jre,客户机无需安装JDK(含代码)

    前言: 通常在采用javafx或tornadofx等框架编写的桌面软件后,若要分发给客户机进行使用,就需要先在目标客户机安装合适版本的JDK,对于客户机来说并不需要关注这一步骤,这也增加了多台客户机分 ...

  3. 蒲公英java后台上传_Android apk 项目一键打包并上传到蒲公英的实现方法

    项目一键打包并上传到蒲公英 缘由:测试流程由 打包 找包准备上传 填写更新信息 然后上传 过于复杂 所以想要简化开发 阅读须知:需要读者了解如何在项目里面建立一个空的gradle plugin的过程, ...

  4. 使用IDEA如何对Java项目进行打包

    我们开发的项目大部分都使用jar包交付,那么如何使用IDEA打jar包呢?下面我们写一个最简单的打包方式 1. 首先先把项目编译一下 点击顶部工具栏 build -> build project ...

  5. maven项目如何打包运行指定java程序(maven-shade-plugin插件的使用)

    其实maven项目的打包就是将项目代码打包成可执行文件,在maven中有默认的打包插件,但是想要运行指定java程序就要使用maven-shade-plugin插件 maven-jar-plugin是 ...

  6. java xml格式打包,maven项目打包xml没有被打包解决办法 ,mybatis的xml打包

    在打maven包是遇见一个问题:打完包发现src/main/java中的的mapping没有被打包进去: 原因主要是mapping目录里面的文件都是xml文件并不是.java文件,而maven打包默认 ...

  7. 用gradle启动java项目_构建Java项目

    #构建Java项目# 上一节我们简要介绍了如何编写一个单机的To Do应用,接下来要打包部署成可执行的应用,我们需要编译源代码,生成的class文件需要打包到JAR文件中.JDK提供了javac 和j ...

  8. java调用android打包_Android Gradle打包基础

    Android gradle打包基础 gradle目录 [代码]java代码:12345MyApp├── build.gradle ( 可以查看Gradle的版本 )├── settings.grad ...

  9. flutter项目如何打包(android)

    打包前要做的 1.更换图标 andriod–>app–app–>src->main->Java---->res–>minpmap 其实这个打包的坑还是比较多的,官方 ...

最新文章

  1. file is too short to be an sstable [[Node: save/RestoreV2 = RestoreV2[dtypes=[DT_FLOAT, DT_FLOAT, DT
  2. Facebook 对 Memcache 伸缩性的增强
  3. linux查看usb设备文件,linux – 确定USB设备文件路径
  4. 【全电发票】开票金额总额度发生了什么变化?
  5. C++算法一些常用的stl函数
  6. PHP处理图片导致内存溢出
  7. python pass关键字神奇吗
  8. 8086汇编语言实现8253计时器对时且实时定点显示时间(全注释)
  9. bzoj 1704: [Usaco2007 Mar]Face The Right Way 自动转身机
  10. 关于样本量的快速证明
  11. 成人高考计算机基础历年真题,成人高考历年真题及答案
  12. 1534 棋子游戏(博弈论,未知规律... ...)
  13. 10种受欢迎的前后端相关开发工具
  14. linux 命令 dd 详解
  15. 一根不均匀的绳子,全部烧完需要1个小时,问怎样烧能计时1个小时15分钟
  16. 变量的生存期与存储类型
  17. 2021水利水电安全员模拟考试案例题库及答案
  18. Google Map 开发笔记——基础篇(Javascript )
  19. 计算机技术与软件专业技术资格(水平)考试—— 软考中级 网络工程师笔记five
  20. Entry键值对对象

热门文章

  1. lumion自动保存_LUMION吊打MAX,轻松玩转规划渲染!
  2. linux生成文件清单,Linux 获取文件名称生成列表 txt - create_filelist
  3. gitlab或者gitee生成/添加SSH公钥的解决办法
  4. html中文字过长 自动隐藏,css 实现文字过长自动隐藏功能
  5. php-5.2.6安装,php5.2.6安装openssl.o扩展,make时报错?
  6. innerHTML的用法
  7. JSP页面中使用超链接进行传输参数(参数是一个本地磁盘链接)问题
  8. CSS画各种二维图形
  9. react实现多行文本超出加省略号
  10. python 函数式编程尾递归优化 day16