1

私は、次の構造を持つ個人的な Maven リポジトリをセットアップしています。

root (accessible via http)
 - maven/
   - com/
     - mycompany/
       - core/
         - core/
           - 1.1.0-SNAPSHOT/
           - 1.1.0/
           - maven-metadata.xml
           - maven-metadata.xml.md5
           - maven-metadata.xml.sha1

現在、1.1.0および1.1.0-SNAPSHOTディレクトリ内には、aar形式の適切なライブラリがあります(私はAndroidで実行しています)。このライブラリの build.gradle ファイルを利用したいプロジェクト内には、次のものがあります。

repositories {                                                                  
    maven { url 'http://builds.myserver.net/maven' }

}
dependencies {
      compile 'com.mycompany.core:core:1.1.0@aar'                       
}

今、私が を実行する./gradlew --refresh-dependenciesと、もちろん、バージョン1.1.0(ではなく1.1.0-SNAPSHOT) がダウンロードされます。依存関係を に変更するとcompile 'com.mycompany.core:core:1.1.0-SNAPSHOT@aar'、適切な SNAPSHOT が見つかります。これはすべて問題なくダンディーですが、私が本当に望んでいるのは NEWEST バージョンを指定できるようにすることです。したがって、たとえば、ライブラリのバージョンがあった場合、それを見つける必要があります。1.2.0または1.2.0-SNAPSHOT、それを見つける必要があります。を試してみましたが、compile 'com.mycompany.core:core:1.1.0+@aar'バージョン1.1.0は ではなくしか見つかりませんでした。1.1.0-SNAPSHOT1.2.01.2.0-SNAPSHOT

+レポで最新のライブラリが見つからない場合、の目的は何なのか疑問に思っています。最初のバージョン番号のみを追跡しますか? それともどういうわけか日付から外れていますか?

編集:

示唆されているように、@aar ./gradlew --refresh-dependencies` のように参照を作成してみました。次のように表示build.gradleされます。latest.integrationcompile 'com.mycompany.core:core:latest.integration' (I also removed the), but when I run

> Could not resolve all dependencies for configuration
> Could not resolve com.mycompany.core:core:latest.integration.
     Required by:
         my-project:MyApp:unspecified
      > java.lang.NullPointerException (no error message)

これはgradleの古いバージョンが原因なのだろうかと思っています。使用しているようです:

mustafar scottjohnson$ ./gradlew --version

------------------------------------------------------------
Gradle 1.12
------------------------------------------------------------

Build time:   2014-04-29 09:24:31 UTC
Build number: none
Revision:     a831fa866d46cbee94e61a09af15f9dd95987421

Groovy:       1.8.6
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
Ivy:          2.2.0
JVM:          1.6.0_65 (Apple Inc. 20.65-b04-466.1)
OS:           Mac OS X 10.10.1 x86_64

で実行すると--info、まだ探しているようです1.2.0(ではなく1.2.0-SNAPSHOT:

Resource missing. [HTTP GET: http://builds.myserver.net/maven/com/mycompany/core/core/1.2.0/core-1.2.0.pom]
Resource missing. [HTTP HEAD: http://builds.myserver.net/maven/com/mycompany/core/core/1.2.0/core-1.2.0.aar]
4

1 に答える 1

0

"com.mycompany.core:core:latest.integration"トリックを行う必要があります。("com.mycompany.core:core:+"一部の Gradle バージョンでは同じ効果がありますが、他の Gradle バージョンのリリース (つまり、スナップショットではない) にのみ一致します。最新のリリース バージョンを取得する安全な方法はlatest.release.)@aarは必要ありません (POM が正しいと仮定すると、パッケージ タイプが公開されている場合)、推移的な依存関係の解決を無効にしますが、これは通常、必要なものではありません。

于 2014-12-19T17:23:46.213 に答える