【问题标题】:Gradle add eclipse project to classpahGradle将eclipse项目添加到classpah
【发布时间】:2015-01-29 11:28:05
【问题描述】:

我有 2 个项目,项目 A 和 B,如何在项目 B 的类路径中放置/链接项目 A?

每次我需要手动制作时,点击项目B上的配置类路径,点击项目选项卡,添加项目,然后点击订单和导出并将项目放在类路径的顶部,但是当然,如果我清理项目 B 我所做的一切都丢失了,如何告诉 Gradle 为我制作它?

看下图,我想让 Gradle 帮我做,怎么做?

【问题讨论】:

  • 根据您的描述,不清楚您的项目是否属于一个 Gradle 构建/单独的 Gradle 项目/根本不是 Gradle 项目。您是否还在 Gradle 构建脚本中使用 eclipse 插件来生成 Eclipse 项目?还是使用 Pivotal 中的 Eclipse 插件(也是 Spring Tool Suite 的一部分)将 Gradle 项目导入 Eclipse?
  • 我有项目 ModCustomer(如图所示),我需要将 ManageCore 和 jcomponents 项目(见图)添加到 ModCustomer 类路径中,我是手动完成的,我想要从 Gradle 中完成。所有项目都是 gradle 项目,它们是分开的。我已经从 Eclipse Tool Suite 中创建了 gradle 项目
  • 在不同项目之间建立依赖关系的正确方法是发布从一个项目构建的 jar artefact 并将其声明为另一个项目中的依赖项。如果您的项目是一个多项目构建的一部分,那么正确的做法是在 build.gradle 中声明一个项目依赖项。下面的“withXml”钩子可能有效,但它不是处理依赖关系的好方法。

标签: eclipse gradle build.gradle gradle-eclipse


【解决方案1】:

您可以使用http://www.gradle.org/docs/current/dsl/org.gradle.plugins.ide.eclipse.model.EclipseClasspath.html 中描述的eclipse.classpath.withXml 钩子自定义如何在构建脚本中生成.classpath

Gradle 不知道 Eclipse 工作区中的项目,因此您的自定义可能应该是可选的。 Eclipse 的 STS 插件可以做到这一点,但具有讽刺意味的是,它仅适用于 Maven 项目(即,如果 Gradle 项目的依赖项是 Maven 项目的输出,它将用项目引用替换类路径上的库 JAR)。

【讨论】:

  • 嗨,对不起,我还是不明白如何告诉 Gradle 在 Gradle 项目中添加一个 Eclipse 项目。我可以在 Gradle 的 EclipsePlugin 中输入什么“类路径”配置来为我进行这些设置?
  • 好吧,在我手动设置后,检查 .classpath 文件,我看到了 问题是,如何让 gradle 从 build.gradle 文件中为我做这件事?
【解决方案2】:

将以下内容放入您的 build.gradle 以将“ManageCore”和“jcomponents”项目添加到 Eclipse 中的 .classpath 文件中:

eclipse.classpath.file.withXml { xml ->
    def node = xml.asNode()
    node.appendNode('classpathentry', [ combineaccessrules: false, exported: true, kind: 'src', path: '/ManageCore' ])
    node.appendNode('classpathentry', [ combineaccessrules: false, exported: true, kind: 'src', path: '/jcomponents' ])
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多