Eclipse将多个classpathentry分层次地组合到同一个输出中

时间:2012-10-24 17:18:43

标签: java eclipse classpath

我在项目的.classpath文件中有以下记录:

<classpathentry kind="src" path="src/main/webapp"
 output="build/webapp"/>
<classpathentry kind="src" path="src/main/java"
 output="build/webapp/WEB-INF/classes"/>
<classpathentry kind="src" path="src/main/resources"
 output="build/webapp/WEB-INF/classes"/>

我的意图是

  1. src/main/webapp复制到build/webapp
  2. 然后将src/main/java汇编为build/webapp/WEB-INF/classes
  3. 然后将src/main/resources复制到build/webapp/WEB-INF/classes
  4. 但结果实际上是

    • src/main/webapp复制到build/webapp
    • 阻止build/webapp/WEB-INF/classes存在,但保留src/main/webappbuild/webapp之间的确切副本

    这意味着永远无法创建build/webapp/WEB-INF/classes,第2步&amp; 3从未成功。

    我甚至尝试将第1步修改为

    <classpathentry kind="src" path="src/main/webapp" output="build/webapp"
     excluding="WEB-INF/classes/**"/>
    

    根本没用。

    classpathentry记录的顺序无关紧要。

    Q1。 请帮助建议我应该如何编写classpathentry记录,以便将它们分层地组合到同一个输出目录中,以便更高文件夹层次结构的classpathentry不会使较低文件夹层次结构的classpathentry无效。

    Q2。 顺便说一下,我找不到eclipse .classpath文件的xml标签和标签属性的任何文档规范。我试过谷歌搜索“eclipse classpathentry”无济于事。有人也可以给我指一份文件吗?

    • “导出”,“排除”,“种类”,“路径”,“输出”是classpathentry标记的唯一属性吗?
    • .classpath文件中允许使用哪些其他标记,例如?
    • 每个标签和标签属性的功能说明。

1 个答案:

答案 0 :(得分:2)

首先,.classpath不是手动编辑的。该文件是JDT的配置文件。名称以“。”开头的文件旨在隐藏用户。如果您手动编辑此文件,在某些情况下,将与实际配置对象断开同步(JDT没问题,因为配置在JDT中自动同步)

打开项目的属性对话框,选择“Java Build Path”。然后,您可以看到该文件的GUI编辑器。该GUI将回答您的要求。它允许管理src以输出映射,重新排序等。但它不会帮助您按照您的要求嵌套输出。

输出文件夹不能分层嵌套在另一个其他输出文件夹下。因为可能会引起冲突。我相信语法不会帮助你。它不会让你做你想做的事。

此文件只是派生的存储数据。如果您的需求很强,您应该考虑自定义构建脚本,或聘请一些eclipse工程师来根据您的需求进行构建器扩展。