在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 復(fù)制文件
使用構(gòu)建腳本塊應(yīng)用插件
使用方法
獲取依賴列表
Logging
第 22 章 Java 插件
更多關(guān)于插件
從外部工具和庫記錄日志
調(diào)用 Ant 任務(wù)
22.9.Clean
Java 構(gòu)建入門
文件集合
依賴管理
建立項(xiàng)目
定位 tasks
構(gòu)建一個(gè) WAR 文件
下載與安裝
使用其他的腳本配置項(xiàng)目
工具和集成開發(fā)環(huán)境
公共配置
擴(kuò)展屬性
只能在構(gòu)建腳本中使用
通用配置
22.13.測試
構(gòu)建日志
文件樹
22.11.編譯 java
公共屬性
查找社區(qū)插件
使用 Gradle 圖形界面
總結(jié)
任務(wù)
局部變量
配置任意對象
導(dǎo)入一個(gè)Ant構(gòu)建
不能與subjects{},allprojects{}等結(jié)合使用
特點(diǎn)
失敗后繼續(xù)執(zhí)行構(gòu)建
孵化中的軟件開發(fā)插件
List 和 Map 集合
閉合作為方法的最后一個(gè)參數(shù)
War 插件 (未完成)
腳本 API
使用 Gradle 命令行
Java 插件
Task 規(guī)則
依賴管理的基礎(chǔ)知識
替換 tasks
22.7.1.Source Set 屬性
應(yīng)用插件
項(xiàng)目之間的依賴
任務(wù)
War
文件操作
聲明你的依賴
教程
編寫構(gòu)建腳本
改變Gradle的記錄內(nèi)容
Running your web application
構(gòu)建腳本代碼
22.12.增量Java編譯
Groovy JDK
跳過 tasks
倉庫
定義一個(gè)多項(xiàng)目構(gòu)建
發(fā)布 artifacts
短標(biāo)記法
22.14.1.Manifest
補(bǔ)充
Standard Gradle plugins
使用其他的腳本配置任意對象
復(fù)制文件
總結(jié)
如何停止守護(hù)進(jìn)程
使用已經(jīng)存在的任務(wù)
如何啟動Gradle的守護(hù)進(jìn)程
Gradle 屬性 和 system 屬性
一個(gè)基礎(chǔ)的 Java 項(xiàng)目
Choosing a log level
查看特定依賴
屬性存取器
定義 tasks
集成插件
未來可能的改進(jìn)
項(xiàng)目布局
在構(gòu)建中使用自定義Ant任務(wù)
Groovy 基礎(chǔ)
一個(gè)基本的 Groovy 項(xiàng)目
搖籃守護(hù)進(jìn)程如何使構(gòu)建速度更快
創(chuàng)建一個(gè)發(fā)行版本
22.13.1.執(zhí)行測試
管理和配置
動態(tài)任務(wù)
22.13.2.調(diào)試
總結(jié)
外部的依賴
如何禁用Gradle的守護(hù)進(jìn)程
跳過 up-to-date 的任務(wù)
概述
快捷的任務(wù)定義
軟件開發(fā)插件
項(xiàng)目 API
語言插件
自定義任務(wù)屬性
關(guān)于這本指南
22.15.上傳
插件DSL的限制
配置 tasks
多任務(wù)調(diào)用
可有可無的圓括號
API
守護(hù)進(jìn)程何時(shí)會出錯
使用一個(gè)歸檔文件的內(nèi)容作為文件樹
22.13.3.測試過濾
在 Gradle中使用Ant
任務(wù)樹
定制War
Projects 和 tasks
終止 tasks
項(xiàng)目列表
任務(wù)列表
多項(xiàng)目的 Java 構(gòu)建
22.13.8.公共值
通過 DAG 配置
22.7.2.定義一個(gè)新的 source set
獲取構(gòu)建信息
使用同步任務(wù)
給 task 加入描述
怎樣抑制“please consider using the Gradle Daemon”消息
Locating files
22.8.Javadoc
網(wǎng)頁應(yīng)用快速入門
項(xiàng)目布局
什么是 Gradle 的守護(hù)進(jìn)程
22.14.Jar
任務(wù)依賴
二進(jìn)制插件
The Gradle Daemon
安裝 Gradle
介紹
排除任務(wù)
22.7.3.一些 source set 的例子
什么時(shí)候不使用Gradle守護(hù)進(jìn)程
編寫自己的日志信息
定制項(xiàng)目
基礎(chǔ)插件
JVM 選項(xiàng)
22.13.6.測試分組
依賴管理
聲明變量
約束語法
孵化中的語言插件
收藏夾
外部的依賴
閉合委托對象
發(fā)布 JAR 文件
22.10.資源
Gradle 插件
16.1.使用 Ant 任務(wù)和 Ant 類型的構(gòu)建
Hello world
選擇執(zhí)行構(gòu)建
孵化中的集成插件
深入了解 Tasks
構(gòu)建腳本的基礎(chǔ)知識
使用資源設(shè)置
指定一組輸入文件
默認(rèn)任務(wù)
插件的作用是什么
給 task 加入依賴
什么是依賴管理?
22.13.4.通過系統(tǒng)屬性執(zhí)行單獨(dú)測試
守護(hù)進(jìn)程占用多大內(nèi)存并且能不能給它更大的內(nèi)存?
排除故障
準(zhǔn)備階段
獲取任務(wù)具體信息
22.13.5.測試檢測
為什么會在機(jī)器上出現(xiàn)不只一個(gè)守護(hù)進(jìn)程
為什么用 Groovy?
腳本插件
使用
Groovy 快速入門
創(chuàng)建歸檔文件
簡化任務(wù)名
使用插件的插件DSL
依賴配置
命令行
插件的類型
Gradle 構(gòu)建語言
Ant的屬性與引用
22.13.7.測試報(bào)告
創(chuàng)建 Eclipse 項(xiàng)目
給 tasks 排序
用法
獲取項(xiàng)目屬性列表
緩存
標(biāo)準(zhǔn)項(xiàng)目屬性
設(shè)置
資源設(shè)置

復(fù)制文件

你可以使用復(fù)制任務(wù)( Copy )去復(fù)制文件. 復(fù)制任務(wù)擴(kuò)展性很強(qiáng),能夠過濾復(fù)制文件的內(nèi)容, 映射文件名.

使用復(fù)制任務(wù)時(shí)需要提供想要復(fù)制的源文件和一個(gè)目標(biāo)目錄,如果你要指定文件被復(fù)制時(shí)的轉(zhuǎn)換方式,可以使用 復(fù)制規(guī)則. 復(fù)制規(guī)則被 CopySpec 接口抽象,復(fù)制任務(wù)實(shí)現(xiàn)了這個(gè)接口. 使用 CopySpec.from() 方法指定源文件.使用 CopySpec.into() 方法指定目標(biāo)目錄.

例 15.10. 使用復(fù)制任務(wù)復(fù)制文件

build.gradle

task copyTask(type: Copy) {
    from 'src/main/webapp'
    into 'build/explodedWar'
}

from() 方法接收任何 files() 方法支持的參數(shù). 當(dāng)參數(shù)被解析為一個(gè)目錄時(shí),在這個(gè)目錄下的任何文件都會被遞歸地復(fù)制到目標(biāo)目錄(但不是目錄本身).當(dāng)一個(gè)參數(shù)解析為一個(gè)文件時(shí),該文件被復(fù)制到目標(biāo)目錄中.當(dāng)參數(shù)被解析為一個(gè)不存在的文件時(shí),這個(gè)參數(shù)就會忽略.如果這個(gè)參數(shù)是一個(gè)任務(wù),任務(wù)的輸出文件(這個(gè)任務(wù)創(chuàng)建的文件)會被復(fù)制,然后這個(gè)任務(wù)會被自動添加為復(fù)制任務(wù)的依賴.

例 15.11 指定復(fù)制任務(wù)的源文件和目標(biāo)目錄

build.gradle

task anotherCopyTask(type: Copy) {
    // 復(fù)制 src/main/webapp 目錄下的所有文件
    from 'src/main/webapp'
    // 復(fù)制一個(gè)單獨(dú)文件
    from 'src/staging/index.html'
    // 復(fù)制一個(gè)任務(wù)輸出的文件
    from copyTask
    // 顯式使用任務(wù)的 outputs 屬性復(fù)制任務(wù)的輸出文件
    from copyTaskWithPatterns.outputs
    // 復(fù)制一個(gè) ZIP 壓縮文件的內(nèi)容
    from zipTree('src/main/assets.zip')
    // 最后指定目標(biāo)目錄
    into { getDestDir() }
}

你可以使用Ant-style 規(guī)則或者一個(gè)閉合選擇要復(fù)制的文件.

例 15.12 選擇要復(fù)制文件

build.gradle

task copyTaskWithPatterns(type: Copy) {
    from 'src/main/webapp'
    into 'build/explodedWar'
    include '**/*.html'
    include '**/*.jsp'
    exclude { details -> details.file.name.endsWith('.html') &&
                         details.file.text.contains('staging') }
}

你也可以使用 Project.copy() 方法復(fù)制文件,它的工作方式有一些限制,首先該方法不是增量的,請參考 第 14.9節(jié) 跳過最新的任務(wù).第二,當(dāng)一個(gè)任務(wù)被用作復(fù)制源時(shí)(例如 from() 方法的參數(shù)), copy() 方法不能夠?qū)崿F(xiàn)任務(wù)依賴,因?yàn)樗且粋€(gè)普通的方法不是一個(gè)任務(wù).因此,如果你使用 copy()方法作為一個(gè)任務(wù)的一部分功能,你需要顯式的聲明所有的輸入和輸出以確保獲得正確的結(jié)果.

例 15.13 不使用最新檢查方式下用 copy() 方法復(fù)制文件

build.gradle

task copyMethod << {
    copy {
        from 'src/main/webapp'
        into 'build/explodedWar'
        include '**/*.html'
        include '**/*.jsp'
    }
}

例 15.14 使用最新的檢查方式下用 copy() 方法復(fù)制文件

build.gradle

task copyMethodWithExplicitDependencies{

     // 對輸入做最新檢查,添加 copyTask 作為依賴
    inputs.file copyTask
    outputs.dir 'some-dir' //對輸出做最新檢查
    doLast{
        copy {
            // 復(fù)制 copyTask 的輸出
            from copyTask
            into 'some-dir'
        }
    }
}

建議盡可能的使用復(fù)制任務(wù),因?yàn)樗С衷隽炕臉?gòu)建和任務(wù)依賴推理,而不需要去額外的費(fèi)力處理這些.不過 copy() 方法可以用作復(fù)制任務(wù)實(shí)現(xiàn)的一部分.即該 方法被在自定義復(fù)制任務(wù)中使用,請參考 第60章 編寫自定義任務(wù).在這樣的場景下,自定義任務(wù)應(yīng)該充分聲明與復(fù)制操作相關(guān)的輸入/輸出。

15.6.1 重命名文件

例 15.15 在復(fù)制時(shí)重命名文件

build.gradle

task rename(type: Copy) {
    from 'src/main/webapp'
    into 'build/explodedWar'
    // 使用一個(gè)閉合映射文件名
    rename { String fileName ->
        fileName.replace('-staging-', '')
    }
    // 使用正則表達(dá)式映射文件名
    rename '(.+)-staging-(.+)', '$1$2'
    rename(/(.+)-staging-(.+)/, '$1$2')
}

15.6.2 過濾文件

例 15.16 在復(fù)制時(shí)過濾文件

build.gradle

import org.apache.tools.ant.filters.FixCrLfFilter
import org.apache.tools.ant.filters.ReplaceTokens

task filter(type: Copy) {
    from 'src/main/webapp'
    into 'build/explodedWar'
    // 在文件中替代屬性標(biāo)記
    expand(copyright: '2009', version: '2.3.1')
    expand(project.properties)
    // 使用 Ant 提供的過濾器
    filter(FixCrLfFilter)
    filter(ReplaceTokens, tokens: [copyright: '2009', version: '2.3.1'])
    // 用一個(gè)閉合來過濾每一行
    filter { String line ->
        "[$line]"
    }
    // 使用閉合來刪除行
    filter { String line ->
        line.startsWith('-') ? null : line
    }
}

在源文件中擴(kuò)展和過濾操作都會查找的某個(gè)標(biāo)志 token,如果它的名字是 tokenName , 它的格式應(yīng)該類似于 @tokenName@.

15.6.3 使用 CopySpec 類

復(fù)制規(guī)范來自于層次結(jié)構(gòu),一個(gè)復(fù)制規(guī)范繼承其目標(biāo)路徑,包括模式,排除模式,復(fù)制操作,名稱映射和過濾器.

例 15.17. 嵌套復(fù)制規(guī)范

build.gradle

task nestedSpecs(type: Copy) {
    into 'build/explodedWar'
    exclude '**/*staging*'
    from('src/dist') {
        include '**/*.html'
    }
    into('libs') {
        from configurations.runtime
    }
}