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 运行和捆绑应用程序。
要使用这个应用程序插件,请在构建脚本中包含以下语句:
若要为应用程序定义 main-class,你必须如下所示设置mainClassName
属性
然后,你可以通过执行 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 的启动脚本。
应用程序插件向 project 中添加了以下任务。
表 45.1. 应用程序插件 - 任务
任务名称 | 依赖于 | 类型 | 描述 |
run |
classes |
JavaExec |
启动应用程序。 |
startScripts |
jar |
CreateStartScripts |
创建操作系统特定的脚本来把该项目作为一个 JVM 应用程序运行。 |
installApp |
jar ,startScripts |
Sync |
将应用程序安装到指定的目录。 |
distZip |
jar ,startScripts |
Zip |
创建包含了运行时库和操作系统特定的脚本的完整分发 ZIP 文件。 |
distTar |
jar ,startScripts |
Tar |
创建包含了运行时库和操作系统特定的脚本的完整分发 TAR 文件。 |
该应用程序插件将一些属性添加到 project 中,以用于配置其行为。请参见 Project
。
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 前哪些生产文件的任务必须被调用,并且会为你处理好。