Rod*_*ano 4 java cucumber gradle
嗨,我想在一个 gradle 项目上运行一些用黄瓜做的测试,我试图在另一台 PC 上运行这个测试(网络访问受限)所以我复制/粘贴了下面的所有内容,~./gradle/caches项目文件喜欢build, src and build.gradle并放置了所有内容和原来一样的地方
所以一旦我把所有东西都准备好,我就运行了这个
gradle --no-daemon --offline cucumber
Run Code Online (Sandbox Code Playgroud)
我失败了
> Could not resolve all dependencies for configuration ':classpath'.
> Could not download gradle-cucumber-plugin.jar (com.github.samueltbrown:gradle-cucumber-plugin:0.9): No cached version available for offline mode
Run Code Online (Sandbox Code Playgroud)
奇怪的是我在缓存目录中有文件
~/.gradle/caches/modules-2/files-2.1/com.github.samueltbrown/gradle-cucumber-plugin/0.9/7b65c67654715025eed1924
0c4f7defbef9645e0# ls
gradle-cucumber-plugin-0.9.jar
Run Code Online (Sandbox Code Playgroud)
仅供参考,我没有像我想要的那样使用 gradle/java 的经验,所以任何类型的建议都会很棒,这是 build.gradle 上“需要”插件的地方
plugins {
id "com.github.samueltbrown.cucumber" version "0.9"
}
Run Code Online (Sandbox Code Playgroud)
谢谢
看到这个开放的Gradle 问题
Gradle 缓存目前并不完全可移植。如果 .gradle 文件夹的绝对路径在两台机器上完全相同,它确实有效。~/.gradle如果两台机器的用户名不同,绝对路径是不一样的!
有几种方法可以解决这个问题,按照所需的努力程度,最少到最多:
--offline 一次如果这在您的网络受限机器上是可能的,在没有离线标志的情况下运行一次,将不会再次下载依赖项,但校验和 - 更重要的是,缓存现在已经过验证并适合与--offline标志一起使用。
.gradle到可重复的路径/tmp/.gradle通过GRADLE_USER_HOME在两台机器上设置将 gradle 缓存文件夹移动到类似的位置,然后在机器之间复制 gradle 缓存。
在联网的机器上,使用 gradle 任务将所有依赖项导出到文件系统文件夹。将文件夹复制到另一台机器上,并在第二台机器上使用 flatdir 存储库。
repositories {
flatDir {
dirs 'lib' //folder containing dependencies
}
}
Run Code Online (Sandbox Code Playgroud)
(您也可以导出到 maven 格式的 repo 而不是 flatdir。请参阅/sf/answers/937774351/)
根据我的经验,Maven 的 .m2 文件夹更便携。创建一个具有相同依赖项的 maven 项目,将依赖项缓存到 .m2 中,然后将 .m2 复制到第二台机器上。在第二台机器上添加mavenLocal()为 repo。
| 归档时间: |
|
| 查看次数: |
3232 次 |
| 最近记录: |