Eclipse:为什么要吃我的log4j.properties文件?

时间:2013-09-06 19:10:22

标签: eclipse ant

Windows 7专业版

Eclipse 3.7.2

我正从另一个IDE迁移到Eclipse。我正在使用之前使用的相同ANT build.xml文件编译我的项目。

我这样做
  1. 在项目视图中突出显示我的项目
  2. 展开树节点
  3. 在那里找到我的build.xml文件
  4. 右键单击我的build.xml文件
  5. 选择运行方式> Ant Build
  6. 效果很好,但每次构建Eclpise都会吃掉位于以下位置的log4j.properties文件:

    C:\ AllProjects \工作区\ ACME \战争\ WEB-INF \类\ log4j.properties

    Eclipse基本上会占用WEB-INF \ classes中不是* .class文件的所有文件。

    我在做什么才能实现这一目标?如何阻止它呢?

    由于

2 个答案:

答案 0 :(得分:1)

由于您使用ant而不是Eclipse来构建,因此您可以尝试关闭设置以自动构建项目。

选择您的项目,然后在屏幕顶部的菜单栏中选择Project并取消选中Build Automatically选项。

编辑:第二意见

每次进行构建时,我都会添加一个ant任务来将log4j属性文件复制到WEB-INF/classes文件夹中。这样做的一个很好的优点是,您可以为不同的构建类型(调试,发布,等。)拥有不同的属性文件,而不必担心手动对其进行更改。此外,如果您正在使用版本控制,这应该可以更容易管理。

将您的log4j.properties文件复制到源目录,并将这样的内容添加到您的ant构建文件中:

<target name="copy-log4j-property-file">
    <copy file="src/log4j.properties" todir="WEB-INF/classes" />
</target>

<target name="build" depends="copy-log4j-property-file">
    <!-- the rest of your build things here -->
</target>

答案 1 :(得分:1)

在Project explorer中选择后:

属性&gt; Java编译器&gt;建筑&gt;输出文件夹

取消选中“清洁项目时清理输出文件夹”

这对我来说是一个解决方案(虽然可能不是每个人),因为我使用时间测试ANT build.xml来为我编译,构建和清理。我只是保留了Eclipse的自动构建,所以在编译之前,我将这些好的错误通知作为I类型。