原文链接:点击查看

关于快照(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 仓库中取得的。你可以通过以下方法选择特定的版本:

  1. 打开 Sonatype
  2. 点击你需要使用的 package 。通常你可以只使用 glide
  3. 点击你想使用的 Glide 快照版本,例如 4.4.0-SNAPSHOT
  4. 从列出的 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'
}