2014-11-05 80 views
0

我使用自己的公司存储库,并从.m2/settings.xml中获取存储库凭据。 我一直做得很好,直到Android Studio和Gradle插件(AS 0.8.14,Gradle 0.13.2)的最新更新。既然我已经更新了他们,我得到下面的“摇篮工程同步”错误:Android - Gradle无法在空对象上获取属性“用户名”

Error;(57,0) Cannot get property 'username' on null object 

的问题是在这里:

allprojects { 
     group 'com.tempos21.android.commons' 
     repositories { // repositories needed in project 
      mavenCentral() // maven central repository 
      maven{ // another repository. Our nexus 
       credentials { 
        def credentials = getCredentials("internal") 
        username = credentials["username"] 
        password = credentials["password"] 
       } 
       url "https://nexus1.tempos21.com/nexus/content/repositories/releases" // url of our nexus repository 
     } 
    } 
} 

我认为,“资格证书”的对象是空的下一行(在更新之前它不是空的)。该方法getCredentials是:

// get repository credentials from .m2/settings.xml 
def getCredentials(server) { 
    def entries = getMavenSettingsCredentials() 
    for (entry in entries) { 
     if (entry."id".text() == server) { 
      return [username: entry.username.text(), password: entry.password.text()] 
     } 
    } 
} 

而且getMavenSettingsCredentials是:

// read .m2/settings.xml 
def getMavenSettingsCredentials() { 
    String userHome = System.getProperty("user.home"); 
    File mavenSettings = new File(userHome, ".m2/settings.xml") 
    def xmlSlurper = new XmlSlurper() 
    def output = xmlSlurper.parse(mavenSettings) 
    return output."servers"."server" 
} 

有谁知道,如果有已经在最近更新的任何变化,将导致此错误的gradle我的文件?

回答

1

对不起,这是我的错。我不记得我改变了我的settings.xml来做一个测试,它没有自己的存储库证书....所以,如果有人有类似的问题,请检查你的settings.xml文件:p

相关问题