关于 Ant 和 Eclipse 有很多讨论,但之前的答案似乎对我没有帮助。
事情是这样的:我正在尝试构建一个可以从命令行使用 Ant 成功编译的 Java 程序。 (更令人困惑的是,我尝试编译的程序是 Ant 本身。)
我真正想做的是将这个项目引入 Eclipse 并在 Eclipse 中进行编译,以便正确解析类型绑定和变量绑定(来自 Eclipse JDT 的术语)。我需要这个,因为我需要对构建在 Eclipse JDT 之上的代码运行静态分析。我将 Java 项目引入 Eclipse 以便 Eclipse 构建它并解析所有绑定的正常方法是将源目录导入到 Java 项目中,然后告诉它使用 src/main/ 目录作为“源目录” ”。
不幸的是,使用 Ant 执行此操作会导致构建失败并出现大量编译错误。在我看来,Ant 构建文件正在正确设置类路径和构建路径(可能通过排除某些源文件),而 Eclipse 没有此信息。
有没有办法获取嵌入在 Ant 构建文件中的类路径和构建路径信息,并将该信息提供给 Eclipse 以放入其 .project 和 .classpath 文件中?我尝试过从现有的构建文件(文件菜单中的选项)创建一个新项目,但这没有帮助。该项目仍然存在相同的编译错误。
谢谢,
内尔斯
我从来没有找到一种真正干净的方法来做到这一点,但一种“hackish”方法是操纵 eclipse 使用的 .classpath 文件(其中包含构建路径)。
所以 .classpath 中将包含如下内容:
<classpathentry kind="lib" path="C:/jboss-4.2.3.GA/client/jboss-system-client.jar"/>
例如,您可以编写某种批处理脚本等,它将读取您的 ant 文件依赖项并将它们放入 eclipse .classpath 文件中(当然,以正确的格式)。
但就我个人而言,我从不愚弄这些事情。我所做的只是将我的项目需要的所有 jar 放在一个文件夹中,然后在我的 ant 文件中设置如下路径:
<path id="all_libs">
<fileset dir="test_reflib">
<include name="**/*.jar"/>
</fileset>
</path>
test_reflib 只需要定义到包含所有 jar 的文件夹所在的位置。
然后,在 eclipse 端,您只需执行“添加 jars”并导航到同一文件夹,然后选择所有 jars。更酷的是,任何时候您将新的 jar 放入此文件夹中,只需单击 eclipse 项目中的根级别并执行“刷新”,然后编辑构建路径并再次单击“添加 jar”,它只会显示 jar您还没有添加到构建路径(即您刚刚放入文件夹中的新 jar)。
如果您在中心位置共享 jars,这显然效果不太好,但对于较小的项目来说它非常有效,您可以将所有 jars 复制到项目的集中文件夹中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)