2017-02-22 5 views
0

私はArtifactory(バージョン4.15.0)インスタンスをいくつかの成果物を持つMaven2リポジトリに提供しています。 Gradle(バージョン3.3)はほとんどの依存関係を解決してダウンロードします。しかし、Gradle Artifactoryプラグインリゾルバが間違ったURLを探す奇妙なエラーで解決できないものがあります。興味深いのは、正しいURLがPOMの場所を特定するために使用され、次にJARをダウンロードしようとするときに間違ったURLが使用されるということです。Artifactory Gradle解決URLが不正確で不一致

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 

あなたが使用するJAR URLが.なく/が含まれているいくつかの理由で見ることができるように。なぜこれが起こっているのかは分かりません。 POMは正しくダウンロードされ、JARの依存関係は解決されずにダウンロードされません。修正の提案はありますか?

もう1つの興味深い発見は、の代わりにartifactory-ivy-resolverが使用されていることです。前述のように、リポジトリはArtifactoryのMaven2リポジトリであり、Gradle build.gradleファイルに記述されています.Ivyについては何も言及されていませんが、Ivyリゾルバが使用されています。これが問題の一部であるかどうかはわかりません。私も、私はちょうど公開のためArtifactoryのGradleプラグインを使用Artifactoryを使用する私のプロジェクトで

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

build.gradleを投稿できますか? –

+0

また、gradle版も投稿してください。 – Henry

+0

@MartinLinha私はbuild.gradleを投稿しました – woody

答えて

0

。ソースリポジトリの定義として、私はこれに似た何かを使用します:

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

あなたのbuild.gradleに入れてください。

+0

これは問題を解決しません。現在私はいくつかの依存関係を解決することができますが、ポストに述べられているように問題が存在します。問題は '.'対'/'です。 – woody

+0

Hm。私は、依存関係の解決が失敗した場合、ビルドも失敗すると思います。出力には、Gradleが欠落している依存関係を取得しようとしたURLのシーケンスがあります。このリストのURLは、まだドットが間違っていますか? –