有没有办法从存储库下载 Gradle 插件到 Gradle 缓存并在离线模式下使用它?
Is there a way to download a Gradle plugin from the repository to Gradle cache and use it in offline mode?
我正在尝试创建将在 --offline
模式下工作的 gradle 项目的副本。除了一个步骤之外,我已经自动化了所有步骤。我无法自动将插件 jar 下载到 gradle 缓存中。
我的离线分发通过指定 GRADLE_USER_HOME
、下载所有依赖项并将整个 gradle 缓存与项目捆绑在一起来工作。不幸的是,我们使用了一些自定义插件。我当然可以为它们中的每一个设置一个例外并手动包含它们,并为离线模式使用某种 if
语句。但是,如果我可以简单地将 jars 下载到缓存中,那就太好了。
有没有办法强制gradle下载所有依赖项,包括插件依赖项?
这就是我对其余依赖项所做的工作:
task resolveAllDependencies {
doLast {
configurations.all { it.resolve() }
}
}
它将所有依赖项下载到本地缓存。但是插件当然不包含在任何配置中。
似乎即使插件在缓存中下载,它在离线模式下仍然失败,并显示以下消息:插件无法从 https://plugins.gradle.org/api/gradle 解析,因为 Gradle 是 运行 离线模式
这是一个可行的解决方案。它并不完美,因为它 hard-codes gradle 插件存储库并更改了脚本。它也比当前使用插件的方式冗长得多。
而不是以下简单的插件定义:
plugins {
id 'net.researchgate.release' version '2.3.5'
}
可以手动定义存储库和依赖项,然后以这种方式使用插件:
buildscript {
repositories {
maven {
url 'https://plugins.gradle.org/m2/'
}
}
dependencies {
classpath 'net.researchgate:gradle-release:2.3.5'
}
}
apply plugin: 'net.researchgate.release'
这会将插件下载到本地 gradle 缓存中。
我正在尝试创建将在 --offline
模式下工作的 gradle 项目的副本。除了一个步骤之外,我已经自动化了所有步骤。我无法自动将插件 jar 下载到 gradle 缓存中。
我的离线分发通过指定 GRADLE_USER_HOME
、下载所有依赖项并将整个 gradle 缓存与项目捆绑在一起来工作。不幸的是,我们使用了一些自定义插件。我当然可以为它们中的每一个设置一个例外并手动包含它们,并为离线模式使用某种 if
语句。但是,如果我可以简单地将 jars 下载到缓存中,那就太好了。
有没有办法强制gradle下载所有依赖项,包括插件依赖项?
这就是我对其余依赖项所做的工作:
task resolveAllDependencies {
doLast {
configurations.all { it.resolve() }
}
}
它将所有依赖项下载到本地缓存。但是插件当然不包含在任何配置中。
似乎即使插件在缓存中下载,它在离线模式下仍然失败,并显示以下消息:插件无法从 https://plugins.gradle.org/api/gradle 解析,因为 Gradle 是 运行 离线模式
这是一个可行的解决方案。它并不完美,因为它 hard-codes gradle 插件存储库并更改了脚本。它也比当前使用插件的方式冗长得多。
而不是以下简单的插件定义:
plugins {
id 'net.researchgate.release' version '2.3.5'
}
可以手动定义存储库和依赖项,然后以这种方式使用插件:
buildscript {
repositories {
maven {
url 'https://plugins.gradle.org/m2/'
}
}
dependencies {
classpath 'net.researchgate:gradle-release:2.3.5'
}
}
apply plugin: 'net.researchgate.release'
这会将插件下载到本地 gradle 缓存中。