2017-12-14 8 views
1

Ich habe eine Abhängigkeit in meinem gitlab-Repository gehostet, auf die ich in einem anderen Projekt zugreifen möchte. Ich habe den Pfad meines Repositorys im root build.gradle eines anderen Projekts angegeben, aber aus irgendeinem Grund ist die URL, die von grittle zum Abrufen der Abhängigkeit generiert wird, ungültig. Ich habe versucht herauszufinden, was ich falsch machen könnte, aber bis jetzt konnte ich das Problem nicht genau bestimmen.Zugriff auf Abhängigkeit von Remoteserver

Ich poste den Gradle-Code zum Generieren der AAR-Datei und den Code, der versucht, diese Abhängigkeit in einer anderen Android-App zu holen.

Bibliothek build.gradle Datei:

publishing { 
    publications { 
     maven(MavenPublication) { 
      groupId 'com.umer' //You can either define these here or get them from project conf elsewhere 
      artifactId 'myLibrary' 
      version project.version 
      artifact "$buildDir/outputs/aar/myLibrary-release.aar" //aar artifact you want to publish 

      //generate pom nodes for dependencies 
      pom.withXml { 
       def dependenciesNode = asNode().appendNode('dependencies') 
       configurations.compile.allDependencies.each { dependency -> 
        def dependencyNode = dependenciesNode.appendNode('dependency') 
        dependencyNode.appendNode('groupId', dependency.group) 
        dependencyNode.appendNode('artifactId', dependency.name) 
        dependencyNode.appendNode('version', dependency.version) 
       } 
      } 
     } 
    } 

    //publish to filesystem repo 
    repositories{ 
     maven { 
      url "C:\\Users\\Umer\\AndroidStudioProjects\\android\\myLibrary\\artifacts" 
     } 
    } 
} 

App Ebene build.gradle von Android App:

dependencies { 
    provided ('com.umer.myLibrary:myLibrary-1.1') 
} 

Android App root build.gradle:

buildscript { 

    repositories { 
     google() 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:3.0.0' 


     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     google() 
     jcenter() 
     flatDir { 
      dirs 'libs' 
     } 
     maven { 
      url 'http:/GIT_LAB_IP_ADDRESS/dev/myLibrary/tree/BRANCH_NAME/artifacts' 
      credentials { 
       username = "myUserName" 
       password = "myPassword" 
      } 
     } 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

gradle.properties von Android App:

systemProp.http.proxyHost=127.0.0.1 
systemProp.https.proxyPort=12345 
org.gradle.jvmargs=-Xmx1536m 
systemProp.https.proxyHost=127.0.0.1 
systemProp.http.proxyPort=12345 

Gradle Sync Fehler in Android App Projekt:

Unable to resolve dependency for ':[email protected]/compileClasspath': Could not resolve com.umer.myLibrary:myLibrary-1.1:. 

Could not resolve com.umer.myLibrary:myLibrary-1.1:. 
Required by: 
    project :app 
> Could not resolve com.umer.myLibrary:myLibrary-1.1:. 
    > Could not get resource 'http://GIT_LAB_IP_ADDRESS/dev/myLibrary/tree/remoteRepoPublication/artifacts/com/umer/myLibrary/myLibrary-1.1//myLibrary-1.1-.pom'. 
      > Could not HEAD 'http://GIT_LAB_IP_ADDRESS/dev/myLibrary/tree/remoteRepoPublication/artifacts/com/umer/myLibrary/myLibrary-1.1//myLibrary-1.1-.pom'. 
        > Connect to 127.0.0.1:12345 [/127.0.0.1] failed: Connection refused: connect 
           > Connection refused: connect 

Wie kann ich es beheben?

PS:

Dies ist die fehlerhafte URL von Gradle in Android App generiert.

http://GIT_LAB_IP_ADDRESS/dev/myLibrary/tree/remoteRepoPublication/artifacts/com/umer/myLibrary/myLibrary-1.1//myLibrary-1.1-.pom 
+0

Gibt es Hinweise, wie Sie dieses Problem beheben können? –

Antwort

-1

Durch an der malformed url suchen: 'http://GIT_LAB_IP_ADDRESS/dev/myLibrary/tree/remoteRepoPublication/artifacts/com/umer/myLibrary/myLibrary-1.1//myLibrary-1.1-.pom'

Es sieht aus wie Sie zwei Probleme haben: 1. Sie müssen den GIT_LAB_IP_ADDRESS mit der realen Hostnamen/IP ersetzen. Hierfür können Sie doppelte Anführungszeichen & das $ -Zeichen als Platzhalter verwenden:

„http: // $ {} GIT_LAB_IP_ADDRESS /dev/myLibrary/tree/remoteRepoPublication/artifacts/com/umer/myLibrary/myLibrary-1.1// myLibrary-1.1-.pom "

Dabei wird GIT_LAB_IP_ADDRESS entweder von local.properties geladen oder in build.gradle-Datei definiert.

  1. Sieht aus wie Sie eine andere // in der URL haben, direkt vor dem letzten Teil (es sei denn, es ist ein Tippfehler)

Hoffnung, das hilft.

+0

Ich weiß das. Es ist nur ein Platzhalter für die Frage hier. In meinem Projekt wird dies durch die reale IP ersetzt –

Verwandte Themen