【问题标题】:Maven Offline Build fails, can't find cache for Eclipse CDT artifactsMaven 离线构建失败,找不到 Eclipse CDT 工件的缓存
【发布时间】:2015-10-05 00:49:11
【问题描述】:

我正在尝试创建工件的本地缓存,以便可以离线构建我的 Maven 项目,但它无法为 Eclipse CDT 功能创建缓存工件,因此离线构建无法成功。

我通过运行 mvn -Dmaven.repo.local=/some/path/ -DgeneratePom=true clean install 创建本地存储库工件,构建成功。

然后我运行mvn -Dmaven.repo.local=/some/path/ -o clean install,它失败并显示此错误消息。

ERROR] 无法解析目标定义 /opt/git/myproject/my.package.target/my.package.target.target: 无法从位置加载 p2 元数据存储库 http://download.eclipse.org/tools/cdt/releases/8.6: 仓库系统 处于离线状态,没有可用的本地缓存 http://download.eclipse.org/tools/cdt/releases/8.6 -> [帮助1]

然后我尝试通过运行mvn -Dmaven.repo.local=/some/path/ dependency:go-offline 创建所需的工件。我在控制台上看到以下内容,这似乎表明它尝试查找 CDT 工件但未能找到,或者认为工件已被缓存。

INFO] 添加存储库 http://download.eclipse.org/tools/cdt/releases/8.6 [信息] 获取 p2.index 来自http://download.eclipse.org/tools/cdt/releases/8.6/r/ (0B/s 时为 0B)

我想知道这条消息的含义(即 0B 是否表示失败,或者工件已经存在?),以及如何使离线构建工作。 dependency:go-offline 构建最终失败,因为可能(?)与此无关的问题。之后,离线构建继续失败,因为它找不到 CDT 工件。

我创建了this SO questionthis Maven Jira Bug Report,用于处理上述关于从 CDT 更新站点下载的 0 字节的消息之后下游发生的问题。

我正在构建的项目是一个 Eclipse RCP 应用程序(基于 Mars),我正在使用 org.eclipse.tycho:target-platform-configuration Maven 插件从 RCP 目标文件加载依赖项。

【问题讨论】:

  • 尝试删除您的 m2 存储库并运行 mvn -U -Dmaven.repo.local=/some/path/ dependency:go-offline
  • 我尝试使用 -U 选项。比没有它花费的时间要长得多,这是一个好兆头。但它仍然显示为 CDT 站点下载了 0B,并且由于我之前看到的(可能不相关的)google guava 错误,离线目标仍然失败。失败后,离线构建仍然报告 CDT 站点没有缓存的工件。我正在尝试解决番石榴错误,以便完成脱机目标。但我想知道为 CDT 站点下载的 0B 是否是预期行为。似乎克服 guava 错误无济于事,因为它已经完成了对 CDT 依赖项的处理。
  • 在一次成功构建之后,使用-o 运行相同的构建应该可以使用 Tycho 开箱即用地成功。如果没有,这可能是一个错误,您应该报告here。确保附上一个演示问题的小项目。
  • 我解决了阻止 dependency:go-offline 完成的问题(记录在那个 SO 问题中),并且脱机构建失败并出现同样的问题,正如我所料。它现在抱怨没有http://download.eclipse.org/tm/terminal/marketplace 的本地缓存,我猜是因为对 pom 文件进行了一些重新排列。我会按照建议创建一个 tycho 错误报告。
  • 关于我正在尝试什么的另一个问题:我依靠 RCP 目标来解决我的依赖问题,使用插件 org.eclipse.tycho:target-platform-configuration。这应该在离线模式下工作吗?如果没有,当我的构建依赖 RCP 目标来解决依赖关系时,我还能做些什么来使我的构建在离线模式下工作?

标签: maven eclipse-cdt offline tycho target-platform


【解决方案1】:

我为这个问题创建了this tycho bug。它作为另一个错误的副本被关闭。在针对该错误的讨论中,如果满足构建依赖关系所需的一个或多个存储库是复合存储库,则会出现问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2015-12-13
    相关资源
    最近更新 更多