多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > Gradle 1.12用戶指南翻譯——第五十三章. 簽名插件

Gradle 1.12用戶指南翻譯——第五十三章. 簽名插件

來源:程序員人生   發(fā)布時間:2017-04-08 13:45:21 閱讀次數(shù):7033次
其他章節(jié)的翻譯請參見:
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 手機用戶可通過我寫的1個程序閱讀文檔,帶緩存功能的,目前0.5版本兼容 Android 2.3以上系統(tǒng),項目地址以下:
https://github.com/msdx/gradle-doc-apk
翻譯不容易,轉載請注明本文在CSDN博客上的出處:
http://blog.csdn.net/maosidiaoxian/article/details/54292923

關于我對Gradle的翻譯,以Github上的項目及http://gradledoc.qiniudn.com 上的文檔為準。如發(fā)現(xiàn)翻譯有誤的地方,將首先在以上兩個地方更新。因時間精力問題,博客中發(fā)表的譯文基本不會同步修改。

另外,目前Gradle1.12版本的文檔進入校稿階段,校稿的方式可以為到該項目https://github.com/msdx/gradledoc 提交issue或是pull request。校稿的結果不只是在此版本更新,也會用于改良Gradle下1版本(2.0)文檔的翻譯。


第5103章. 簽名插件

簽名插件添加了對構件的文件和artifacts進行數(shù)字簽名的功能。這些數(shù)字簽名可以用于證明使用這個簽名的artifact是誰構建的,和其他的信息,比如簽名是甚么時候生成的。

簽名插件目前只提供了生成PGP 簽名的支持(這是發(fā)布到Maven 中央庫所需的簽名格式)。

53.1. 用法

要使用 Signing 插件,請在構建腳本中包括以下語句:

示例 53.1. 使用Signing插件

build.gradle

apply plugin: 'signing'

53.2. 簽名憑證

為了創(chuàng)建 PGP 簽名,你將需要1個密鑰對(有關使用GnuPG 工具創(chuàng)建密鑰對的介紹可以在GnuPG Howto中找到)。您需要向簽名插件提供你的關鍵信息,即以下3項信息:

  • 公鑰 ID (1個8位字符的106進制字符串)。

  • 指向包括了你的私鑰的密鑰環(huán)文件的絕對路徑。

  • 用來保護你的私鑰的密碼。

這些條目必須分別作為屬性項目signing.keyId、 signing.passwordsigning.secretKeyRingFile 進行提供。鑒于這些值的個人和私人性質,1個好的做法是將它們保存在用戶的gradle.properties文件(第14.2 節(jié),“Gradle 屬性和系統(tǒng)屬性”中所述)。

signing.keyId=24875D73
signing.password=secret
signing.secretKeyRingFile=/Users/me/.gnupg/secring.gpg

如果在用戶的gradle.properties文件中指定的信息不合適你的環(huán)境,你可以提供這些信息,但你需要手動設置項目的屬性。

import org.gradle.plugins.signing.Sign

gradle.taskGraph.whenReady { taskGraph ->
    if (taskGraph.allTasks.any { it instanceof Sign }) {
        // Use Java 6's console to read from the console (no good for a CI environment)
        Console console = System.console()
        console.printf "\n\nWe have to sign some things in this build.\n\nPlease enter your signing details.\n\n"

        def id = console.readLine("PGP Key Id: ")
        def file = console.readLine("PGP Secret Key Ring File (absolute path): ")
        def password = console.readPassword("PGP Private Key Password: ")

        allprojects { ext."signing.keyId" = id }
        allprojects { ext."signing.secretKeyRingFile" = file }
        allprojects { ext."signing.password" = password }

        console.printf "\nThanks.\n\n"
    }
}

53.3. 指定要簽名的內容

除配置內容要如何簽名(即簽名配置),你還必須指定哪些文件要簽名。Signing 插件提供了1個DSL,它允許你指定應簽名的任務及配置。

53.3.1. 簽名配置

簽名1個配置的artifacts是很常見的情況。例如, Java 插件配置了構建1個jar文件,并且把 jar 文件添加到archives配置。使用Signing DSL,你可以指定這個配置的所有 artifacts 都應當被簽名。

53.3.2. 簽名1個配置

build.gradle

signing {
    sign configurations.archives
}

這將在你的項目中創(chuàng)建1個名為“signArchives”的任務(Sign類型),這個任務會構建任何archives的artifacts(如果需要),然后為它們生成簽名。簽名文件將和被簽名的artifacts放在1起。

示例 53.3. 簽署1個配置的輸出

gradle signArchives的輸出結果

> gradle signArchives
:compileJava
:processResources
:classes
:jar
:signArchives

BUILD SUCCESSFUL

Total time: 1 secs

53.3.2. 簽名任務

在某些情況下,你需要簽名的artifact 可能不是配置的1部份。在這類情況下,你可以直接簽名生成了要簽名的artifact 的任務。

53.4. 簽名1個任務

build.gradle

task stuffZip (type: Zip) {
    baseName = "stuff"
    from "src/stuff"
}

signing {
    sign stuffZip
}

這將在您的項目創(chuàng)建1個名為“signStuffZip”的(Sign類型) 的任務,這個任務會構建輸入任務的archive(如果需要),并進行簽字。簽名文件將和被簽名的 artifact 放在1起。

示例 53.5. 簽名1個任務的輸出

gradle signStuffZip的輸出結果

> gradle signStuffZip
:stuffZip
:signStuffZip

BUILD SUCCESSFUL

Total time: 1 secs

1個“可簽名”的任務,必須輸出某種類型的archive。這樣的任務有 Tar, Zip, Jar, War 及 Ear任務。

53.3.3. 有條件的簽名

常見的使用模式是只在1定條件下簽名構建的artifacts。例如,你可能不想對非發(fā)布版本簽名artifacts。要做到這1點,你可以指定只在1定條件下才要求簽名。

53.6. 有條件的簽名

build.gradle

version = '1.0-SNAPSHOT'
ext.isReleaseVersion = !version.endsWith("SNAPSHOT")

signing {
    required { isReleaseVersion && gradle.taskGraph.hasTask("uploadArchives") }
    sign configurations.archives
}

在此示例中,我們只想要在我們構建1個我們行將去發(fā)布的發(fā)布版本的時候,才進行簽名。由于我們正在檢查任務圖,以肯定是不是打算發(fā)布,我們必須將signing.required屬性設置為1個閉包以推延evaluation。更多的信息,請參閱SigningExtension.setRequired() 。

53.4. 發(fā)布簽名

當通過 Signing DSL指定甚么要被簽名的時候,生成的signature會自動地加入到 signatures 和 archives 的依賴配置中。這意味著,如果你想要將你的簽名和artifacts上傳到你的散布倉庫中,正常來說你只需要履行uploadArchives任務。

53.5. 簽名 POM 文件

當為你的artifacts部署簽名到 Maven 倉庫時,你還想簽名發(fā)布的 POM 文件。簽名插件添加了1個signing.signPom() (請參見: SigningExtension.signPom())方法,這個方法可以在你的上傳任務配置的beforeDeployment()塊中使用。

示例 53.7. 為部署簽名 POM

build.gradle

uploadArchives {
    repositories {
        mavenDeployer {
            beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
        }
    }
}

當不需要簽名,和由于缺少配置(即沒有簽名證書)而不能簽名 POM 的時候,signPom()方法將甚么都不會做,并且不會進行任何的提示。


生活不易,碼農辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品久久久久久搜索 | 男女视频免费观看 | 国产精品嫩草影院在线观看免费 | 男人把大ji巴放进男人免费视频 | 欧美刺激午夜性久久久久久久 | 亚洲精品视频一区二区 | 中文字幕在线影院 | 欧美性大战久久久久久久蜜桃 | 最新国产在线观看福利91 | 一二三四视频社区在线中文 | 亚洲性夜夜时 | tube44欧美| 国产精品久久久久久 | 中国黄色毛片 大片 | 亚洲啊v | 一级a欧美毛片 | 最近手机中文字幕大全8 | 中文字幕av在线 | 国产精品福利在线观看 | 国产v在线| 亚洲天堂精品在线观看 | 三级爱爱视频 | 男女晚上日日麻批视频不挡 | 高清国产一区二区 | 国产亚洲精品久久77777 | 天堂在线最新版在线www | 肉体肉体xxxx肉体d | ww视频在线观看 | 国产视频一区在线播放 | 亚洲精品毛片久久久久久久 | 亚洲成av人片在线观看 | 国产中文99视频在线观看 | 国产人成久久久精品 | 麻豆影视免费观看 | 国产精品一区二区三区免费视频 | 午夜爱爱网站 | 国产精品久久久久无码av | 欧美日韩精品在线 | 91啦中文成人 | 亚洲国产2017男人a天堂 | 日本无卡码免费一区二区三区 |