【问题标题】:Building FreeMarker not resolving dependencies构建 FreeMarker 不解决依赖关系
【发布时间】:2019-11-11 11:40:08
【问题描述】:

我正在尝试构建 freemarker 项目,但第一步失败了,

我有JDK 8并下载最新的IVY(2.5.0)或推荐(2.4.0)并复制到ant lib文件夹,ant版本为1.10.1

我执行 ant clean jar ide-dependencies 并得到 2 UNRESOLVED DEPENDENCIES 错误:

[ivy:cachepath]                 ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:cachepath]                 ::          UNRESOLVED DEPENDENCIES         ::
[ivy:cachepath]                 ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:cachepath]                 :: ant#ant;1.6.5: not found
[ivy:cachepath]                 :: avalon-logkit#avalon-logkit;2.0: not found
[ivy:cachepath]                 ::::::::::::::::::::::::::::::::::::::::::::::

你需要 JDK 8(不是 JDK 9!)、Apache Ant(用 1.9.6 测试)和 Ivy(用 2.4.0 测试)

我应该降级 ant 以使其工作吗?

Ant 不鼓励降级

可以在此处找到旧版本的 Ant。我们强烈建议不要使用这些版本,而是升级到 Ant 的最新版本。

【问题讨论】:

  • 它适用于我的 Ant 1.10.5 和 Ivy 2.4.0,但当然它也适用于不同的版本。所述工件也在 Maven Central Repo 中。也许从 FreeMarker 项目目录中删除 ~/.ant/cache/ant~/.ant/cache/avalon-logkit.ivy 目录,然后重试。还要检查日志中是否有有趣的东西。
  • @ddekany 感谢您的评论,直到无法删除执行之前不存在的文件夹 \freemarker-2.3-gae\.ivy\repo\biz.aQute\bnd\bnd-1.50.0.jar 。这可以忽略吗?
  • 我明白为什么了。只需再次发出相同的命令,然后它应该可以工作。如果您一次运行多个 ant 任务,就会出现问题,而且这是您第一次在新结账时进行构建。然后对于每个任务,它会尝试重新创建.ivy,不仅是运行的第一个任务,这会导致第二个问题。
  • @ddekany 如果我不删除我会遇到问题 1,如果我删除我会遇到问题 2...我是 ivy 新手,我应该在支持论坛中提问吗?
  • 那么问题1的原因肯定是问题2损坏了.ivy。因此,删除损坏的.ivy,然后发出应该成功的ant clean jar,然后在单独的命令中发出ant ide-dependencies,现在也应该成功。 (我会调查这个构建问题......或者如果我无法修复它,我会修改自述文件。)

标签: ant freemarker dependency-management ivy


【解决方案1】:

事实证明,2.3.28 及更早版本的构建存在这个问题,如果您第一次运行构建(因此您还没有<freemarker-project>/.ivy 目录),并且您运行多个 Ant 任务( jaride-dependencies) 使用相同的 ant 调用,第二个任务将破坏新创建的 <freemarker-project>/.ivy 的内容。要解决这个问题,你必须删除<freemarker-project>/.ivy,然后运行ant clean jar,然后单独运行ant ide-dependencies

更新:从 2.3.29-SNAPSHOT 修复

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多