2012-04-14 57 views
2
  1. 我们想要一个脚本来执行“svn update”,如果depedency.gradle文件在更新列表中,我们想运行一个只更新的任务依赖关系,所以开发者机器是最新的。那个任务会是什么?运行“gradle任务”时我没有看到它。寻找一个updatejars什么的。如何防止gradle下载依赖关系

  2. 当我们建立我们的项目时,我们不希望它检查jar更新!大部分是因为只需要在上面#1的两种情况下以及有人更新dependency.gradle文件时完成。第二件事,一旦我知道第一个问题的答案,他们就可以运行“gradle updatejars”。

任何想法?我刚刚进入gradle,并且我们确实希望保持一致的环境,当我们运行我们的更新脚本时,它会在一次原子扫描中得到源代码和罐子,我们不再为每个构建检查存储库而烦恼。

如果可能的话,通过更改build.gradle文件知道如何做到这一点是很好的。如果没有,是否有命令行选项? (build.gradle显然会给我一个命令行选项,这就是为什么我喜欢这种方法,因为我可以说编译不依赖于下载jar)。

回答

9

关于第二个问题。据我了解,Gradle 不会尝试进行远程查找或尝试下载jar,如果它已经在本地缓存中。对于用静态版本声明的罐子,这应该是正确的,例如testCompile 'junit:junit:4.10'

如果您有动态版本,例如, 1.+1.0-SNAPSHOT等,那么Gradle必须时不时地做一次检查。你可以fine tune the cache expiry for such dependencies

为了确保Gradle不会进行远程查找,您还可以使用--offline选项。 See this doc for details

关于SVN更新,你至少有3个选项:

  1. 尝试使用SvnKit plugin for Gradle

  2. 使用Ant SVN任务(在这里是如何做到svn checkout

  3. 从Gradle运行外部命令。使用ExecPlugin或者使用Groovy API自己实现它。