gpt4 book ai didi

java - 使用 Maven 存储库的 Gradle 离线构建

转载 作者:行者123 更新时间:2023-12-03 03:58:32 26 4
gpt4 key购买 nike

我正在尝试设置离线 Gradle 构建。

理想情况下,我希望将我所有的项目依赖项都放在一个任意的 Maven 存储库中,如下所示:

repositories {
maven {
url 'file://PATH/TO/REPO'
}
}

但是,以上在全新的 Gradle 安装(无 ~/.gradle 缓存)中失败,出现以下情况:

* What went wrong
Plugin [id: PLUGINID, version: PLUGINVERSION] was not found in any of the
following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolvee plugin artifact 'PLUGINID:PLUGINNAME:PLUGINVERSION')
Searched in the following repositories:
Gradle Central Plugin Repository

我尝试了几种不同的方法来指定存储库,包括:

  1. 将“url...”替换为“flatDir { dir '/PATH/TO/REPO' }”。
  2. 将所有依赖项复制到 ~/.m2 并调用 mavenLocal() 作为存储库。

要将依赖项从 ~/.gradle/caches/modules-2/files-2.1/复制到我的“离线”存储库中,我尝试过:

  1. 直接复制/粘贴
  2. 一个转换结构的 Gradle 任务:

    task cacheLocal(type: Copy) {
    from new File(gradle.gradleUserHomeDir, 'caches/modules-2/files-2.1')
    into '/PATH/TO/REPO'
    eachFile {
    List<String> parts = it.path.split('/')
    it.path = (parts[0] + '/' + parts[1]).replace('.','/') + '/' + parts[2] + '/' + parts[4]
    }
    includeEmptyDirs = false
    }

其他:

  • 使用“--offline”运行没有区别。
  • 如果 ~/.gradle 已经存在,则构建成功,否则失败。

我的插件 block (上面的错误语句会命中第一个非 Gradle 核心插件,所以在这种情况下是 protobuf):

plugins {
id "com.google.protobuf" version "0.8.6"
id "nebula.ospackage" version "4.9.3"
id "java"
id "eclipse"
}

这超出了我的理解范围,如有任何帮助,我们将不胜感激!

最佳答案

如果您还想从本地存储库中解析插件,则必须配置 pluginManagement 部分才能这样做。在您的问题中,您似乎只配置了项目存储库。

参见 example in the documentation

关于java - 使用 Maven 存储库的 Gradle 离线构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com