日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Gradle 2.13中更好地处理“在插件Y上找不到属性X”

發布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Gradle 2.13中更好地处理“在插件Y上找不到属性X” 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

您可能從未聽說過的服務缺少用戶名,密碼或令牌? 這通常發生在您嘗試執行任何操作(例如僅構建項目)時,不僅發生在使用給定的插件(例如在線代碼覆蓋工具)時。 我不想修改我的環境,而只是為另一個開源項目提供一個小的修復。 這很煩我,我想更改它。 從Gradle 2.13開始,這成為可能。 但是,讓我們從原因開始(如果您僅對解決方案感興趣,請前進至最后兩段)。

為什么會顯示“找不到財產……”?

大多數Gradle插件都需要配置。 可以直接在build.gradle設置一些屬性,但是其他一些屬性(尤其是憑據)最好保留在~/.gradle/gradle.properties 。 因此,插件配置部分通常如下所示:

bintray {user = project.getProperty('bintrayUser')key = project.getProperty('bintrayKey')... }

或者那個:

bintray {user = getProperty('bintrayUser')key = getProperty('bintrayKey')... }

甚至更短:

bintray {user = bintrayUserkey = bintrayKey... }

對于在其本地配置中定義了bintrayUser和bintrayKey的項目開發人員而言,它工作正常,但是對于每個未每日上傳到Bintray的人,它都會失敗:

* What went wrong: A problem occurred evaluating root project 'another-nice-open-source-project'. > Could not find property 'bintrayKey' on com.jfrog.bintray.gradle.BintrayExtension_Decorated@2ecc563.

結果是project.getProperty() (未提及顯式分配)只是在未找到特定屬性時引發異常。 不好的是,代碼是在配置短語中執行的。 因此,即使與該特定插件無關的每項任務(例如gw tasks或gw wrapper )的執行都會失敗。

作為解決方法,必須執行防護檢查:

bintray { //Gradle <2.13user = hasProperty('bintrayUser') ? getProperty('bintrayUser') : ''key = hasProperty('bintrayKey') ? getProperty('bintrayKey') : ''... }

看起來不太緊湊。 作為另一個選擇,可以將虛擬占位符保留在項目配置中,但是從Gradle 2.13開始,有一種更好的方法來應對。

project.findProperty()

Gradle 2.13是我對新方法project.findProperty() 貢獻的第一個版本。 它的行為與getProperty()相同,但是不拋出異常,而是返回null值。 這大大簡化了分配:

bintray { //Gradle 2.13+user = findProperty('bintrayUser') ?: ''key = findProperty('bintrayKey') ?: ''... }

有人可能會說Optional作為返回值可能會更好,但這是一個API,并且Gradle支持早于8的Java。

摘要

對我來說, findProperty是我在Gradle中經常尋找的一種方法。 很遺憾,我花了一年多的時間才提出這項要求。 Gradle 2.13剛剛發布,跨項目的版本升級將逐步進行。 這可能需要一些時間,但是每個遷移到2.13的項目都將能夠簡化其配置,使“無法在插件Y上找到屬性X”錯誤消息成為過去的回憶(當然,除非您確實需要將特定的插件配置為用它)。

經過Gradle 2.13測試。

翻譯自: https://www.javacodegeeks.com/2016/04/better-dealing-not-find-property-x-plugin-y-gradle-2-13.html

總結

以上是生活随笔為你收集整理的在Gradle 2.13中更好地处理“在插件Y上找不到属性X”的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。