Android 我如何告诉gradle使用最新的库,快照还是否?
我有一个具有以下结构的个人maven回购设置:Android 我如何告诉gradle使用最新的库,快照还是否?,android,maven,gradle,aar,Android,Maven,Gradle,Aar,我有一个具有以下结构的个人maven回购设置: root (accessible via http) - maven/ - com/ - mycompany/ - core/ - core/ - 1.1.0-SNAPSHOT/ - 1.1.0/ - maven-metadata.xml - maven-metadata.xml.md5 -
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目录中有相应的库,我正在android上运行aar格式。在我希望使用此库的build.gradle文件的项目中,我有以下内容:
repositories {
maven { url 'http://builds.myserver.net/maven' }
}
dependencies {
compile 'com.mycompany.core:core:1.1.0@aar'
}
> 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)
现在,当我执行./gradlew-刷新依赖项时,它当然会下载1.1.0版而不是1.1.0版快照。如果我将依赖项更改为compile'com.mycompany.core:core:1.1.0-SNAPSHOT@aar,然后找到相应的快照。这一切都很好,但我真正想要的是能够指定最新的版本。例如,如果我有一个版本的库1.2.0,它应该会找到它,或者1.2.0-SNAPSHOT,它应该会找到它。我试过编译'com.mycompany.core:core:1.1.0+@aar',但仍然只能找到版本1.1.0,而不是1.1.0-SNAPSHOT,如果我有1.2.0或1.2.0-SNAPSHOT,也找不到
我想知道如果在repo中找不到最新的库,+,它的目的是什么。它是否只跟踪第一个版本号?或者是过时了
编辑:
正如建议的那样,我尝试将build.gradle引用设为latest.integration,例如:compile'com.mycompany.core:core:latest.integration'我也删除了the@aar,但当我运行./gradlew-refresh dependencies`时,我看到以下内容:
repositories {
maven { url 'http://builds.myserver.net/maven' }
}
dependencies {
compile 'com.mycompany.core:core:1.1.0@aar'
}
> 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:
com.mycompany.core:core:latest.integration应该可以做到这一点。com.mycompany.core:core:+在某些Gradle版本中具有相同的效果,但仅与其他Gradle版本中的版本(即非快照)匹配。获取最新版本的安全方法是latest.release@假设发布了具有正确包装类型的POM,并且将禁用可传递依赖项解析(通常不是您想要的),aar应该是不必要的。当您使用1.1.+或1.2.+时,您得到了您想要的吗?从中,Gradle可能会使用,这可能会给你提供其他语法的想法,让我试试,我会让你知道的。谢谢你的建议。很抱歉反应太晚。。。假期等等;我已经编辑了上面的问题,但当我尝试使用最新的.integration时看到了一个异常。我必须看到-stacktrace。尝试使用最新的Gradle版本。