2017-02-22 5 views
0

Ich habe eine Artifactory (Version 4.15.0) Instanz, die ein Maven2-Repository mit mehreren Artefakten bedient. Gradle (Version 3.3) löst und lädt die meisten Abhängigkeiten gut. Einige Fehler können jedoch bei einem seltsamen Fehler behoben werden, bei dem der Gradel Artifactory-Plugin-Resolver nach der falschen URL sucht. Interessant ist, dass die richtige URL verwendet wird, um das POM zu finden, und wenn es versucht, das JAR herunterzuladen, wird die falsche URL verwendet.Artifactory Gradle Auflösung URL falsch und inkonsistent

POM URL

[DEBUG] [org.apache.http.impl.execchain.MainClientExec] Executing request HEAD http://artifactoryLocation:8081/artifactory/libs-release/org/swinglabs/swingx/swingx-all/1.6.5-1/swingx-all-1.6.5-1.pom HTTP/1.1 

JAR URL

[DEBUG] [org.gradle.internal.resource.transport.http.HttpClientHelper] Performing HTTP HEAD: http://artifactoryLocation:8081/artifactory/libs-release/org.swinglabs.swingx/swingx-all/1.6.5-1/swingx-all-1.6.5-1.jar 

Wie Sie aus irgendeinem Grund die JAR-URL verwendet . und nicht / enthält sehen kann. Ich bin mir nicht sicher, warum dies geschieht. Das POM wird ordnungsgemäß heruntergeladen, während die JAR-Abhängigkeiten nicht aufgelöst und heruntergeladen werden können. Irgendwelche Vorschläge von Korrekturen?

Ein weiterer interessanter Fund ist, dass die artifactory-ivy-resolver anstelle der artifactory-maven-resolver verwendet wird. Wie bereits erwähnt, ist das Repository ein Maven2-Repository in Artifactory und wird als solches in der Gradle build.gradle-Datei angegeben - nichts wird über Ivy erwähnt und dennoch wird der Ivy-Resolver verwendet. Ich bin mir nicht sicher, ob das ein Teil des Problems ist.

build.gradle

apply plugin: 'java' 
apply plugin: 'com.jfrog.artifactory' 

repositories { 

} 

buildscript { 
    repositories { 
    maven { 
     url 'http://artifactoryLocation:8081/artifactory/libs-release' 
     credentials { 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
     } 
    } 

    jcenter() 
    } 
    dependencies { 
    //Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory 
    classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+" 
    } 
} 

dependencies { 
    compile 'javax.media:jmf:2.1.1e' 
    compile 'com.bbn.openmap:openmap:5.0' 
    compile 'org.igniterealtime.smack:smack:3.2.2' 
    compile 'org.igniterealtime.smack:smackx:3.2.2' 
    compile 'org.swinglabs.swingx:swingx-all:1.6.5-1' 
    compile 'gov.nasa.worldwind:worldwind:2.1.0' 
} 

artifactory { 
    contextUrl = "${artifactory_contextUrl}" //The base Artifactory URL if not overridden by the publisher/resolver 
    publish { 
    repository { 
     repoKey = 'libs-release-local' 
     username = "${artifactory_user}" 
     password = "${artifactory_password}" 
     maven = true 
    } 
    } 
    resolve { 
    repository { 
     repoKey = 'libs-release' 
     username = "${artifactory_user}" 
     password = "${artifactory_password}" 
     maven = true 
    } 
    } 
} 
+0

Könnten Sie Ihren build.gradle posten? –

+0

Und bitte auch die Grapple-Version. – Henry

+0

@MartinLinha Ich veröffentlichte die build.gradle – woody

Antwort

0

In meinen Projekten, wo ich Artifactory benutze ich nur für die Veröffentlichung Artifactory Gradle Plugin auch. Als Quelle Repo-Definition verwende ich etwas Ähnliches wie folgt aus:

repositories { 
    maven { 
     url 'http://artifactoryLocation:8081/artifactory/libs-release' 
     credentials { 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
     } 
    } 
} 

Versuchen Sie es zu Ihrem build.gradle zu setzen, bitte.

+0

Das behebt das Problem nicht. Momentan kann ich einige Abhängigkeiten auflösen, aber es existieren Probleme wie im Post angegeben. Das Problem liegt im '.' vs'/'. – woody

+0

Hm. Ich nehme an, wenn die Abhängigkeitsauflösung fehlschlägt, schlägt die Erstellung auch fehl. In der Ausgabe haben Sie eine URL-Sequenz, in der Gradle versuchte, die fehlende Abhängigkeit zu erhalten. Die URL in dieser Liste ist immer noch die falsche mit Punkten? –

Verwandte Themen