【问题标题】:Maven update linksMaven 更新链接
【发布时间】:2014-12-15 19:17:44
【问题描述】:

您好,我是 android 开发和 JAVA 的新手。我有 Android 工作室和一个新项目。我在项目属性中添加了对来自 maven 存储库的库的一个依赖项。因此,例如,如果一年后有人将在 Maven 存储库中更新此库,我将需要更新还链接到项目设置中的此库,或者它会自动加载新版本的库?谢谢。

这是我的 .gradle 配置:

apply plugin: 'com.android.library'



dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.robbypond:mopub-android-sdk:3.2.2d'
    compile 'com.googlecode.android-query:android-query:0.25.9'
}

【问题讨论】:

  • 这取决于...您是如何添加依赖项的?您是否下载了 JAR 并将其放在项目目录中的某个位置?还是您更新了.gradle 文件?
  • 我正在使用 gradle,我更新了问题。
  • 不应更新该特定版本。会有一个新的,因此您必须更改要更新的项目的版本号
  • 我可以为新版本进行配置以自动更新吗?

标签: java android maven android-studio maven-plugin


【解决方案1】:

只要你将你的依赖定义为一个固定的版本(比如com.robbypond:mopub-android-sdk:3.2.2d),这个依赖就不会被更新。根本不会更新依赖,因为在释放依赖后,它的内容应该是固定的。

如果您想“自动升级”到较新的版本,您可能需要使用'dynamic version'。你可以这样做:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.robbypond:mopub-android-sdk:3.2.+' // note the + instead of 2d
    compile 'com.googlecode.android-query:android-query:0.25.+' // note + instead of 9
}

优点是只有在版本号的最后部分发生更改时,您才能获得更新版本的库。当库作者遵守semantic versioning 时,您只会获得错误修复更新,而不会由于 API 更改而导致编译失败。

另一种选择是完全省略版本号。这引入了获取更新版本 API 的风险,可能会破坏您的构建。我只是为了完整性而提到它:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.robbypond:mopub-android-sdk' // note the missing :3.2.2d
    compile 'com.googlecode.android-query:android-query' // note the missing :0.25.9
}

【讨论】:

  • 这些更改后我遇到了下一个错误:file:/C:/AndroidDevelopment/android-sdk/extras/android/m2repository/com/googlecode/android-query/android-query//android -query-.pom 文件:/C:/AndroidDevelopment/android-sdk/extras/android/m2repository/com/googlecode/android-query/android-query//android-query-.jar 文件:/C:/AndroidDevelopment/ android-sdk/extras/google/m2repository/com/googlecode/android-query/android-query//android-query-.pom 文件:/C:/AndroidDevelopment/android-sdk/extras/google/m2repository/com/googlecode /android-query/android-query//android-query-.jar
  • 您使用的是哪个版本的 Gradle?您可以通过gradle -v 看到这一点。你能发布确切的错误信息吗?这看起来更像是一个文件名列表......另外请仔细检查dependencies 块(我已经更新了它)。
  • 我根据下一个链接'动态版本'(见答案)我只需要在版本中加上“+”,例如:compile 'com.robbypond:mopub-android-sdk:3.3.+ ' 编译 'com.googlecode.android-query:android-query:0.+'
  • 请注意,通常强烈建议不要使用动态版本控制。尽管您似乎总是希望选择较新的版本,尤其是应该只是错误修复版本的版本,但实际上,当库默默地更改时,由于不可预知的原因,这往往会使您的应用程序或构建在不可预知的时间中断:“我的应用程序昨天工作,但今天崩溃,为什么?”您也不希望在项目的测试/发布周期后期更改库。
  • 绝对同意你的观点,Scott Berta。我总是固定我的版本,以便获得可重复的构建。只是觉得这里不是区分赞成和反对太多的地方,但这绝对是要考虑的事情。
猜你喜欢
  • 2010-12-02
  • 2013-12-04
  • 1970-01-01
  • 2011-01-18
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多