gpt4 book ai didi

eclipse - Buildship 不断覆盖 .classpath

转载 作者:行者123 更新时间:2023-12-03 02:56:59 25 4
gpt4 key购买 nike

我将 Gradle 和 Eclipse 与 Buildship 插件结合使用。

Buildship 创建供 Eclipse 使用的 .classpath 文件。我需要一个类路径条目 (com.gwtplugins.gwt.eclipse.core.GWT_CONTAINER) 出现在 org.eclipse.buildship.core.gradleclasspathcontainer 条目之后,对于类-加载原因。

所以我的 .classpath 文件的相关部分应该如下所示(底部有 GWT_CONTAINER)。

<classpath>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer" />
<classpathentry kind="con" path="com.gwtplugins.gwt.eclipse.core.GWT_CONTAINER"/>
</classpath>

Buildship 总是在最后一个位置有 gradleclasspathcontainer。所以我尝试在我的 build.gradle(摘录)中像这样更改排序:

eclipse {
classpath {
file {
beforeMerged { classpath ->
def gwtClasspath = classpath.entries.find { entry -> entry.path == 'com.gwtplugins.gwt.eclipse.core.GWT_CONTAINER' }
classpath.entries.remove gwtClasspath
classpath.entries << gwtClasspath
}
}
}

使用 ./gradlew eclipseClasspath 时,正确创建了 .classpath 文件。但是一旦 Buildship 运行,该文件就会再次被错误的顺序覆盖。

我还尝试使用 whenMerged 而不是 beforeMerged,但这并没有改变任何东西。

这是由 Buildship 启动时 Gradle 的输出(例如,通过单击 Eclipse 项目属性上的 Gradle -> Refresh):

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.5/userguide/command_line_interface.html#sec:command_line_warnings

CONFIGURE SUCCESSFUL in 0s
:cleanEclipseWtpComponent
:cleanEclipseWtpFacet
:cleanEclipseWtp
:eclipseWtpComponent
:eclipseWtpFacet
:eclipseWtp

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.5/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 0s
4 actionable tasks: 4 executed

似乎 Buildship 甚至不执行 eclipseClasspath 任务,但确实通过其他方式创建了 .classpath 文件。

我怎样才能让 Buildship 满足我按自己的方式对类路径进行排序的愿望?

最佳答案

我找到了 solution on Gradle forums :

Buildship 不使用eclipseClasspath 任务,而是读取配置并通过自己的方式创建.classpath。 Gradle 类路径附加到类路径的末尾(如果尚未定义)。这发生在执行 whenMerged 部分之后。所以解决方案是手动添加 Gradle 类路径:

eclipse {
classpath {
containers 'org.eclipse.buildship.core.gradleclasspathcontainer'
}
}

关于eclipse - Buildship 不断覆盖 .classpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49068870/

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