好吧,這個變成了有趣的事情。
的原因指出,這條線
錯誤的陣營,本機模塊的release.gradle
:
def getRepositoryUrl() {
return hasProperty('repositoryUrl') ? property('repositoryUrl') : 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
}
奇怪的是,問題是hasProperty('repositoryUrl')
回報true
,而property('repositoryUrl')
導致錯誤。
關於gradle 3.1,hasProperty('repositoryUrl')
返回false
。
顯然在gradle 3.5中,hasProperty()
返回true
在屬性確實丟失但仍有吸氣劑的情況下。在我們的例子中,吸氣劑是
def getRepositoryUrl() {...}
這隱約地解釋了here。
然而,還有另一種檢查屬性的方法,它忽略了名爲findProperty的getter。
的修復
所以修復是下一塊從release.gradle
改變:
def getRepositoryUrl() {
return hasProperty('repositoryUrl') ? property('repositoryUrl') : 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
}
def getRepositoryUsername() {
return hasProperty('repositoryUsername') ? property('repositoryUsername') : ''
}
def getRepositoryPassword() {
return hasProperty('repositoryPassword') ? property('repositoryPassword') : ''
}
要這樣:
def getRepositoryUrl() {
return findProperty('repositoryUrl') != null ? property('repositoryUrl') : 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
}
def getRepositoryUsername() {
return findProperty('repositoryUsername') !=null ? property('repositoryUsername') : ''
}
def getRepositoryPassword() {
return findProperty('repositoryPassword') != null ? property('repositoryPassword') : ''
}
更多的痛苦,同時從源頭here建設RN模塊經歷。