gpt4 book ai didi

eclipse - 使用 Gradle 在多个 Eclipse WTP 项目之间共享资源

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

我正在尝试一种模块化的 Eclipse (Mars) 设置,其中一个项目中的核心资源被不同的子项目使用。

core/
src
main/
webapp/
js/
subfolder
another-core.js
core.js
css/
default.css
child/
src/
main/
webapp/
js/
project.js
WEB-INF/
project.html
.settings/org.eclipse.wst.common.component看起来像这样
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="2.0">
<wb-module deploy-name="child">
<property name="context-root" value="child"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
<wb-resource deploy-path="/" source-path="src/main/webapp"/>
<wb-resource deploy-path="/" source-path="../core/src/main/webapp/"/>
</wb-module>
</project-modules>

Eclipse 将以下结构部署到其 wtpwebapps 文件夹,即仅来自核心的顶级目录。我期望 css/包含 default.css 和 js/包含 core.js 和 project.js
child/
css/ <== must have come from core
js/
project.js
WEB-INF/
project.html

如果我更改 .settings 以显式列出文件夹,那么它会按预期工作,仅将文件夹再次合并到顶层
<wb-resource deploy-path="/" source-path="../core/src/main/webapp/"/>
<wb-resource deploy-path="/js" source-path="../core/src/main/webapp/js"/>
<wb-resource deploy-path="/css" source-path="../core/src/main/webapp/css"/>

wtpwebapps/内容
child/
css/
default.css
js/
core.js
project.js
subfolder/ <== missing another-core.js
WEB-INF/
project.html

反正有没有让eclipse在不单独列出所有文件夹的情况下做到这一点?

外部 wb-resources 的另一个限制是当它们重叠时,例如包括“js/subfolder”和“js/” Eclipse 会自动删除“js/subfolder”

最佳答案

我认为这是可能的唯一方法是通过使用链接资源,因为它们支持完全递归的源目录,这与仅包含其顶层的相对路径不同。但是,Gradle 似乎存在以下问题:如果包含以下链接资源,则会被排除在外:

eclipse.project {    
linkedResource name: 'core', type: '2', location: new File(project(':core').projectDir, "src/main/webapp").absolutePath
}
eclipse {
wtp {
component {
resource sourcePath: "/core", deployPath: '/'
}
}
}

但是,有一个 withXml Hook 可用于将正确的 XML 强制转换为 org.eclipse.wst.common.component.xml
eclipse {
wtp {
component {
file {
withXml {
def node = it.asNode().children()[0]
node.appendNode('wb-resource', ["deploy-path": '/', "source-path": '/core'])
}
}
}
}
}

关于eclipse - 使用 Gradle 在多个 Eclipse WTP 项目之间共享资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32581947/

25 4 0