快照版本
原文链接:点击查看
关于快照(Snapshots)
对于那些等不了 Glide 的下一个稳定版的用户,我们在 Sonatype’s snapshot repo 部署了 Glide 库的快照版本。
在每次 push 到 GitHub 的 master 分支上后,Glide 会通过 travis-ci 构建。如果构建成功,我们将自动部署最新版本的库到 Sonatype 上。
每个集成库都有它自己的快照,与主 Glide 库一样。如果你使用了 Glide 库的快照版本,你使用的任何集成库也要使用快照版本,反之亦然。
获取快照
Sonatype 的快照仓库的工作原理与其他maven仓库一样,所以快照可以多种方式访问:jar, maven,或者 gradle。
Jar
你可以直接从 Sonatype 下载。请务必检查日期以确保你正在获取的是最新的版本。
Gradle
首先你需要把快照仓库添加到你的仓库列表:
repositories {
jcenter()
maven {
name 'glide-snapshot'
url 'http://oss.sonatype.org/content/repositories/snapshots'
}
}
然后修改你的依赖为快照版本:
dependencies {
compile 'com.github.bumptech.glide:glide:4.12.0-SNAPSHOT'
compile 'com.github.bumptech.glide:okhttp-integration:4.12.0-SNAPSHOT'
}
Maven
请注意,这种方法未经测试,是从 Stack Overflow 的这个问题而来的。关于本节有任何建议,欢迎提出!
请将下列代码添加到你的~/.m2/settings.xml
:
<profiles>
<profile>
<id>allow-snapshots</id>
<activation><activeByDefault>true</activeByDefault></activation>
<repositories>
<repository>
<id>snapshots-repo</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
</profile>
</profiles>
然后修改你的依赖为快照版本:
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>glide</artifactId>
<version>4.12.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>okhttp-integration</artifactId>
<version>4.12.0-SNAPSHOT</version>
</dependency>
修复你的快照依赖
使用 Glide 的 快照 (``-SNAPSHOT`) 版本可能为应用带来风险,因为 gradle 将拉取的快照版本代码将依赖于你何时首次构建你的项目。假如你添加了一个快照依赖,并随后在你的本地机器上做好了测试,然后将这个构建配置推送到了构建服务器,构建服务器可能最终会使用另一个版本的 Glide 代码来完成构建。快照版本将在每次成功 push 到 GitHub 后发生改变,并且这种改变可能在任何时候发生。
要解决这种问题,你可以从 sonatype 指定一个特定的版本而不是依赖于 -SNAPSHOT
。例如在 Gradle 中:
dependencies {
compile 'com.github.bumptech.glide:glide:4.3.0-20171024.022226-26'
compile 'com.github.bumptech.glide:okhttp-integration:4.3.0-20171024.022226-26'
}
或使用 Maven(未测试):
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>glide</artifactId>
<version>4.3.0-20171024.022226-26</version>
</dependency>
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>okhttp-integration</artifactId>
<version>4.3.0-20171024.022226-26</version>
</dependency>
这里的版本号 4.3.0-20171024.022226-26
,是从 Sonatype 仓库中取得的。你可以通过以下方法选择特定的版本:
- 打开 Sonatype;
- 点击你需要使用的 package 。通常你可以只使用 glide;
- 点击你想使用的 Glide 快照版本,例如 4.4.0-SNAPSHOT;
- 从列出的 artifact 中选择一个并复制粘贴版本号即可。例如你看到
glide-4.3.0-20171024.022211-26-javadoc.jar
, 那么它的版本号就是4.3.0-20171024.022211-26
。通常你会想要使用最新可用的 artifact 。你可以检查修改日期列来确认这一点,但一般而言最近的 artifact 都展示在页面的底部。
尽管选择特定快照版本要稍微麻烦一些,但相比你在应用程序或库的生产版本中使用 Glide 的快照版本依赖的话,这通常是一个更安全的选择。
本地构建快照
Maven 允许你在特定的 Maven 仓库中安装 artifact 并在其他项目中依赖这些 artifact。通常这是一个较为简单的方法来在第三方项目中测试对 Glide 的修改。你可以在两个地方:
在默认的本地 Maven 库中安装
如果你只是简单地想在你的项目中测试一些你对 Glide 的修改 (或使用 Glide 的某个特定版本或提交来编译你的项目),你可以在默认的本地 Maven 仓库中安装 Glide。
为了这样做,你需要将以下代码添加到你的 build.gradle
文件的 repositories
部分中:
repositories {
mavenLocal()
}
然后使用 -PLOCAL
来构建 Glide:
./gradlew uploadArchives --parallel -PLOCAL
在特定的本地或远程仓库中安装
如果你需要指定一个特定的本地或远程仓库来安装 Glide ,你可以使用以下命令:
./gradlew uploadArchives --stacktrace --info -PSNAPSHOT_REPOSITORY_URL=file://p:\path\to\repo -PRELEASE_REPOSITORY_URL=file://p:\path\to\repo
这将创建一个 m2 仓库文件夹,你可以用 Gradle 在一个工程里测试你的修改:
repositories {
//确保这行在 glide-snapshot之前,使它成为首先被查询的仓库
maven { name 'glide-local'; url 'p:\\path\\to\\repo' }
}
dependencies {
//开启这个选项,确保所有变更生效
//configurations.compile.resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
compile 'com.github.bumptech.glide:glide:x.y.z-SNAPSHOT'
}