Nel*_*man 7 java eclipse ant build eclipse-jdt
关于Ant和Eclipse有很多讨论,但之前没有回答似乎对我有所帮助.
这是交易:我正在尝试构建一个Java程序,它可以从命令行成功编译Ant.(为了进一步混淆问题,我试图编译的程序是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"/>
Run Code Online (Sandbox Code Playgroud)
例如,您可以编写某种批处理脚本等,它们将读取您的ant文件依赖项并将它们放入eclipse .classpath文件中(当然,格式正确).
但就个人而言,我从不愚弄这些事情.我所做的只是将我的项目需要的所有罐子放在一个文件夹中,然后在我的ant文件中我有一个如下设置的路径:
<path id="all_libs">
<fileset dir="test_reflib">
<include name="**/*.jar"/>
</fileset>
</path>
Run Code Online (Sandbox Code Playgroud)
test_reflib只需要定义到包含所有jar的文件夹的任何位置.
然后,在日食方面你可以做一个"添加罐子"并导航到同一个文件夹,然后选择所有的罐子.甚至更酷的是,无论何时将新罐放入此文件夹,只需单击eclipse项目中的根级别并执行"刷新",然后编辑构建路径并再次单击添加jar,它将仅显示罐子您还没有添加到构建路径(即刚刚放入文件夹中的新jar).
如果你在一个中心位置共享罐子,这显然不会很好,但它适用于较小的项目,你可以将所有罐子复制到项目的集中文件夹.
| 归档时间: |
|
| 查看次数: |
24292 次 |
| 最近记录: |