本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:

http://blog.csdn.net/column/details/gradle-translation.html

翻译项目请关注Github上的地址:

https://github.com/msdx/gradledoc

本文翻译所在分支:

https://github.com/msdx/gradledoc/tree/1.12。

直接浏览双语版的文档请访问:

http://gradledoc.qiniudn.com/1.12/userguide/userguide.html。

另外,Android 手机用户可通过我写的一个程序浏览文档,带缓存功能的,目前0.2.1版本兼容 android 2.2以上系统,地址如下:

http://www.wandoujia.com/apps/com.githang.gradledoc

翻译不易,转载请注明本文在CSDN博客上的出处:

http://blog.csdn.net/maosidiaoxian/article/details/50494891

关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qiniudn.com 上的文档为准。如有发现翻译有误的地方,将首先在以上两个地方更新。因时间精力问题,博客中发表的译文基本不会同步修改。

第四十五章. 应用程序插件

Gradle 应用程序插件扩展了语言插件的一些常见应用程序相关的任务。它允许为 jvm 运行和捆绑应用程序。

45.1. 用法

要使用这个应用程序插件,请在构建脚本中包含以下语句:

示例 45.1. 使用应用程序插件

build.gradle

apply plugin:'application'

若要为应用程序定义 main-class,你必须如下所示设置mainClassName属性

示例 45.2. 配置应用程序的主类

build.gradle

mainClassName = "org.gradle.sample.Main"

然后,你可以通过执行 gradle run 来运行这个应用程序。Gradle 将会处理好构建的应用程序的类,以及它们的运行时依赖,还有使用正确的类路径启动应用程序。你可以通过gradle run --debug-jvm 在调试模式下启动该应用程序(见JavaExec.setDebug())。

该插件还可以生成你的应用程序的分发文件。分发的内容将会把这个程序的运行时依赖和一些操作系统特定的启动脚本打包在一起。所有存储在 src/dist 的文件都将添加到 distribution 的根目录中您可以运行gradle installApp,在build/install/projectName 中创建一张应用程序的图像。你可以运行gradle distZip 把 distrubution 打包成一个 ZIP 文件。

如果你的 Java 应用程序需要一组特定的 JVM 设置或系统属性,你可以配置applicationDefaultJvmArgs属性。这些 JVM 参数会被应用于run 任务,以及生成的 distrubution 的启动脚本。

示例 45.3. 配置默认 JVM 设置

build.gradle

applicationDefaultJvmArgs = ["-Dgreeting.language=en"]

45.2. 任务

应用程序插件向 project 中添加了以下任务。

表 45.1. 应用程序插件 - 任务

任务名称 依赖于 类型 描述
run classes JavaExec 启动应用程序。
startScripts jar CreateStartScripts 创建操作系统特定的脚本来把该项目作为一个 JVM 应用程序运行。
installApp jar,startScripts Sync 将应用程序安装到指定的目录。
distZip jar,startScripts Zip 创建包含了运行时库和操作系统特定的脚本的完整分发 ZIP 文件。
distTar jar,startScripts Tar 创建包含了运行时库和操作系统特定的脚本的完整分发 TAR 文件。

45.3. 约定属性

该应用程序插件将一些属性添加到 project 中,以用于配置其行为。请参见 Project

45.4. 在 distribution 中包含其他资源

applicationDistribution是由插件添加的公约属性之一,它是一个CopySpec。这个描述在 installApp 和 distZip 任务中会用到,作为这个distribution 都包含了什么内容的描述。以上在 distribution 中将启动脚本复制到bin目录,并且将必要的 jar 文件复制到lib目录,所有在src/dist目录的文件也会被复制。如果要在 distribution 中包括任何的静态文件,只需要把它们放在src/dist目录。

如果你的项目生成的文件中要在 distrubution 中,例如文档,你可以通过把它们添加到applicationDistribution复制规范,来将这些文件添加到 distribution 中。

示例 45.4. 在应用程序的分发中包含其他任务的输出文件

build.gradle

task createDocs {
def docs = file("$buildDir/docs")
outputs.dir docs
doLast {
docs.mkdirs()
new File(docs, "readme.txt").write("Read me!")
}
} applicationDistribution.from(createDocs) {
into "docs"
}

通过指定分布包应包括的任务的输出文件 (见15.9.1章,“声明任务的输入和输出”),Gradle 将知道在组装 distribution 前哪些生产文件的任务必须被调用,并且会为你处理好。

示例 45.5. 自动创建用于分发的文件

gradle distZip的输出

> gradle distZip
:createDocs
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:startScripts
:distZip BUILD SUCCESSFUL Total time: 1 secs

Gradle 1.12用户指南翻译——第四十五章. 应用程序插件的更多相关文章

  1. Gradle 1.12用户指南翻译——第四十九章. Build Dashboard 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  2. Gradle 1.12用户指南翻译——第四十二章. Announce插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  3. Gradle 1.12用户指南翻译——第三十六章. Sonar Runner 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  4. Gradle 1.12用户指南翻译——第三十五章. Sonar 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  5. Gradle 1.12用户指南翻译——第六十五章. Maven 发布(新)

    其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上的地址:https://gith ...

  6. Gradle 1.12用户指南翻译——第四十八章. Wrapper 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  7. Gradle 1.12用户指南翻译——第四十四章. 分发插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  8. Gradle 1.12用户指南翻译——第三十九章. IDEA 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  9. Gradle 1.12用户指南翻译——第三十二章. JDepend 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

随机推荐

  1. Linux下内存问题检测神器:Valgrind

    在写大型C/C++工程时难免会发生内存泄漏现象,系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题.有时这些问题非常琐碎,而更多时候它会演变成一个调 ...

  2. JAVA_将唐诗按照古文样式输出

    1. 如有唐诗: 锄禾日当午 汗滴禾下土 谁知盘中餐 粒粒皆辛苦 要求将这首唐诗按照古文样式输出,输出格式如下: 粒谁汗锄 粒知滴禾 皆盘禾日 辛中下当 苦餐土午 public class Text ...

  3. SSO-单点统一登录系统的设计与实现

    本文主要基于web类应用展开讨论,提供的是一种通用机制和方法,所以不论何种技术栈都可进行相应的具体实现. 实现目标 可以在相同或跨域环境下完成各应用的统一登录/注销 方案原理 本质上是采用了web应用 ...

  4. [LeetCode] Is Graph Bipartite? 是二分图么?

    Given an undirected graph, return true if and only if it is bipartite. Recall that a graph is bipart ...

  5. 原生nodejs在线聊天系统

    前端自动化由来已久,最近为了编写自己的自动化工具,本人开始详细学习node,为了检验学习成果,决定编写一个类似于webqq的聊天系统.以下是该系统具有的模块. 登录模块(自动登录) 聊天模块(私聊,群 ...

  6. testng执行多个suite

    由于testng.xml中只能设置一个<suite>标签,就无法创建多个测试集,通过<suite-files >标签可以实现允许多个测试集. 1.testng.xml中引入多个 ...

  7. 51 nod 1681 公共祖先 (主席树+dfs序)

    1681 公共祖先 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   有一个庞大的家族,共n人.已知这n个人的祖辈关系正好形成树形结构(即父亲向儿子连边). 在另 ...

  8. spoj 1676 AC自动机+矩阵快速

    Text Generator Time Limit: 1386MS   Memory Limit: 1572864KB   64bit IO Format: %lld & %llu Submi ...

  9. [APIO2012]

    来自FallDream的博客,未经允许,请勿转载,谢谢. --------------------------------------------------- A.dispatching 派遣 上次 ...

  10. bzoj省选十连测推广赛

    A.普通计算姬 题意:给丁一棵树,每个点有一个权值,用sum(x)表示以x为根的子树的权值和,要求支持两种操作: 1 u v  :修改点u的权值为v. 2 l  r   :  求∑sum[i] l&l ...