当前位置:K88软件开发文章中心编程工具Gradle → 文章内容

Gradle 使用文件

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-24 10:31:28

复制操作有关的输入/输出。重命名文件重命名复制的文件build.gradle task rename(type: Copy) { from 'src/main/webapp' into 'build/explodedWar' // Use a closure to map the file name rename { String fileName -> fileName.replace('-staging-', '') } // Use a regular expression to map the file name rename '(.+)-staging-(.+)', '$1$2' rename(/(.+)-staging-(.+)/, '$1$2')} 过滤文件过滤要复制的文件build.gradle import org.apache.tools.ant.filters.FixCrLfFilterimport org.apache.tools.ant.filters.ReplaceTokenstask filter(type: Copy) { from 'src/main/webapp' into 'build/explodedWar' // Substitute property references in files expand(copyright: '2009', version: '2.3.1') expand(project.properties) // Use some of the filters provided by Ant filter(FixCrLfFilter) filter(ReplaceTokens, tokens: [copyright: '2009', version: '2.3.1']) // Use a closure to filter each line filter { String line -> "[$line]" }} 使用 CopySpec 类复制规范用来组织一个层次结构。一个复制规范继承其目标路径,包含模式,排除模式,复制操作,名称映射和过滤器。嵌套的复制规范build.gradle task nestedSpecs(type: Copy) { into 'build/explodedWar' exclude '**/*staging*' from('src/dist') { include '**/*.html' } into('libs') { from configurations.runtime }} 使用 Sync 任务Sync 任务继承了 Copy 任务。当它执行时,它会将源文件复制到目标目录中,然后从目标目录移除所有不是它复制的文件。这可以用来做一些事情,比如安装你的应用程序、 创建你的归档文件的 exploded 副本,或维护项目的依赖项的副本。这里是一个例子,维护在 build/libs 目录中的项目运行时依赖的副本。使用同步任务复制依赖项build.gradle task libs(type: Sync) { from configurations.runtime into "$buildDir/libs"} 创建归档文件一个项目可以有你所想要的一样多的 JAR 文件。您也可以将 WAR、 ZIP 和 TAG 文件添加到您的项目。使用各种归档任务可以创建以下的归档文件: Zip, Tar, Jar, War, and Ear. 他们的工作方式都一样,所以让我们看看如何创建一个 ZIP 文件。创建一个 ZIP 文件build.gradle apply plugin: 'java'task zip(type: Zip) { from 'src/dist' into('libs') { from configurations.runtime }} 为什么要用 Java 插件?Java 插件对归档任务添加了一些默认值。如果你愿意,使用归档任务时可以不需要 Java 插件。您需要提供一些值给附加的属性。 归档任务与 Copy 任务的工作方式一样,并且实现了相同的 CopySpec 接口。像使用 Copy 任务一样,你需要使用 from() 的方法指定输入的文件,并可以选择是否通过 into() 方法指定最终在存档中的位置。您可以通过一个复制规范来筛选文件的内容、 重命名文件和进行其他你可以做的事情。归档命名生成的归档的默认名称是 projectName-version.type。举个例子:创建 ZIP 文件build.gradle apply plugin: 'java'version = 1.0task myZip(type: Zip) { from 'somedir'}println myZip.archiveNameprintln relativePath(myZip.destinationDir)println relativePath(myZip.archivePath) gradle -q myZip 的输出结果 > gradle -q myZipzipProject-1.0.zipbuild/distributionsbuild/distributions/zipProject-1.0.zip 它添加了一个名称为 myZip 的ZIP归档任务,产生 ZIP 文件 zipProject 1.0.zip。区分归档任务的名称和归档任务生成的归档文件的名称是很重要的。归档的默认名称可以通过项目属性 archivesBaseName 来更改。还可以在以后的任何时候更改归档文件的名称。这里有很多你可以在归档任务中设置的属性。它们在以下的表 16.1,"存档任务-命名属性"中列出。你可以,比方说,更改归档文件的名称:配置归档任务-自定义归档名称build.gradle apply plugin: 'java'version = 1.0task myZip(type: Zip) { from 'somedir' baseName = 'customName'}println myZip.archiveName gradle -q myZip 的输出结果 gradle -q myZipcustomName-1.0.zip 您可以进一步自定义存档名称:配置归档任务 - appendix & classifierbuild.gradle apply plugin: 'java'archivesBaseName = 'gradle'version = 1.0task myZip(type: Zip) { appendix = 'wrapper' classifier = 'src' from 'somedir'}println myZip.archiveName gradle -q myZip 的输出结果 > gradle -q myZipgradle-wrapper-1.0-src.zip 表 16.1. 归档任务-命名属性属性名称类型默认值描述archiveNameStringextension如果这些属性中的任何一个为空,那后面的-不会被添加到该名称中。生成的归档文件的基本文件名archivePathFilearchiveName生成的归档文件的绝对路径。destinationDirFile依赖于归档类型。JAR包和 WAR包会生成到?project.buildDir/libraries中。ZIP文件和 TAR文件会生成到project.buildDir/distributions中。存放生成的归档文件的目录baseNameStringproject.name归档文件的名称中的基本名称部分。appendixStringnull归档文件的名称中的附录部分。versionStringproject.version归档文件的名称中的版本部分。classifierStringnull归档文件的名称中的分类部分。extensionString依赖于归档的类型,用于TAR文件,可以是以下压缩类型:?tbz2.归档文件的名称中的扩展名称部分。共享多个归档之间的内容你可以使用 Project.copySpec()方法在归档之间共享内容。你经常会想要发布一个归档文件,这样就可从另一个项目中使用它。

上一页  [1] [2] [3] 


Gradle 使用文件