从Eclipse使用ant构建的策略

hib*_*lig 4 eclipse ant

我们为项目提供了非常自定义的ant构建文件,基本上这样做:

  • 一些预编译工作(例如代码生成)
  • 编译Java代码
  • 一些后期编译工作(例如将文件复制到classes目录以包含在jar文件中;构建jar文件;将文件复制到其他位置以便Tomcat选择它们)

目前,我们的ant集成包括告诉Eclipse运行"do all all"ant目标(它自己编译).

这似乎是因为ant正在编译而不是Eclipse,Eclipse编译器会生成更好的错误消息.还不清楚ant构建或默认Java构建是否应该首先运行.当项目中的任何内容发生变化时,我们需要告诉ant目标基本上运行.这导致蚂蚁在每次豁免时运行整个机器,基本上.这很慢.(如果我们没有编辑代码生成器的输入文件,那么我们可以跳过运行代码生成器,并且ant需要很长时间才能弄清楚它不需要做任何事情.)

这里有关于策略的建议吗?

  • 我们是否需要将ant构建器拆分为多个ant构建器,每个构建器都有自己的一组监视资源,其中一些在Java构建器之前运行,另一些在Java构建器之后运行?
  • 我们应该首先运行ant,然后运行Java构建器,反之亦然?什么应该刷新设置?
  • 我们是否想告诉Eclipse重建其他人触及的类文件?

谢谢你的任何建议.

Ale*_*yak 7

将生成作业委派给Eclipse的最佳方法是通过Ant构建器. 在这里查看如何设置构建器.

在您的build.xml文件中创建2个目标:generate-codecleanup-generated-code.

然后在构建器的Targets选项卡中以这种方式将它们连接起来:

Ant Builder目标配置

这将使您的项目能够很好地响应构建事件.

下一步是让Eclipse自动编译生成的源.

为此,在项目的根目录中创建一个名为的目录generated-src.此目录应为空,您应将其置于源控制系统的管理之下.因为会有一些生成的代码,所以将.xxxignore文件放到这个目录中.

一旦generated-src目录就位,将其作为项目的源目录(Java Build Path中的Source选项卡)

源目录

最后,但并非最不重要的是,一旦生成了源代码,就要启动Eclipse的java编译器.为此,您需要修改RefreshAnt构建器的选项卡.

这是设置:

刷新选项卡

单击Specify Resources按钮时,请确保选中整个项目目录,如下所示:

精选资源

这样,当项目中的任何内容发生变化时,它就会启动ant构建器,这可能会或可能不会重新生成源,这会导致java重新编译.

最后一个截图.确保both build.xml和base目录都相对于Builder的Main选项卡中的$ {workspace_loc} ,就像这里一样(基本上只使用Browse Workspace按钮):

Builder的主选项卡

一旦做到这一点,转播generate-codecleanup-generated-code到你的正常指标在你的build.xml,你会要求命令行构建.这样Eclipse和您的命令行构建就完成了代码生成的完全相同的步骤.此外,Eclipse构建将对项目的真实源代码完全敏感.