【发布时间】:2011-08-02 05:43:15
【问题描述】:
除了我的 java 源代码之外,我还有一些数据文件,我想在构建源代码时将它们复制到构建目录。目前我没有使用任何构建工具(例如 maven 或 ant),而是仅在 Eclipse 中开发和运行单元测试。 我可以以某种方式让 Eclipse 在构建我的 java 代码时复制这些数据文件吗?
【问题讨论】:
除了我的 java 源代码之外,我还有一些数据文件,我想在构建源代码时将它们复制到构建目录。目前我没有使用任何构建工具(例如 maven 或 ant),而是仅在 Eclipse 中开发和运行单元测试。 我可以以某种方式让 Eclipse 在构建我的 java 代码时复制这些数据文件吗?
【问题讨论】:
首先创建一个新的源文件夹,将其命名为 res,您可以使用此文件夹来存储数据文件。接下来打开项目属性的 Java Build Path 部分(从项目的上下文菜单中)。选择来源标签。在此选项卡中,您可以控制每个源文件夹的输出文件夹。默认情况下,eclipse 在构建期间将源文件夹中的所有非 java 文件复制到输出目录。
【讨论】:
与蚂蚁一起去。老实说,这是应用构建过程自动化的最佳解决方案。
我不经常使用 Eclipse。但我敢打赌,必须有一个构建文件 (build.xml),您可以在其中添加类似以下代码的内容,并在构建您的应用程序时始终执行它。
这就是我在我的一个项目的构建文件中这样做的方式。我在这里将两个文件夹及其所有内容复制到一个 dist(在 NetBeans 中用作创建应用程序 jar 的分发文件夹),因此我可以轻松地在 IDE 外部运行我的应用程序。
请注意,Eclipse 中的目标名称可能不同。但是你应该在构建文件中找到一个正确的描述。
<!-- to copy data & images folders' contents to dist folder on build. -->
<target name="-post-jar" description="Copying Images">
<property name="images.dir" value="${dist.dir}/images" />
<property name="data.dir" value="${dist.dir}/data" />
<copy todir="${images.dir}">
<fileset dir="./images" />
</copy>
<echo level="info" message="Images folder content was copied."/>
<copy todir="${data.dir}">
<fileset dir="./data" />
</copy>
<echo level="info" message="Data folder content was copied."/>
</target>
一切顺利,波罗。
【讨论】:
Eclipse 并不是真的要复制东西(它可能有那个特性,我不知道)。就像你提到的那样,这是 Maven 或 Ant 的工作。但是,对于您的 JUnit 测试,您有几个选择...
【讨论】: