2011-01-28 102 views
4

构建我们有非常定制的Ant构建文件为我们的项目,基本上做到这一点:策略使用Ant在Eclipse

  • 一些预编译的工作(如代码生成)
  • 编译Java代码
  • 一些编译后的工作(例如,将文件复制到包含在jar文件中的类目录;建立jar文件,将文件复制到其他地方,这样的Tomcat挑选他们)

目前,我们的ant集成包括告诉Eclipse运行“做它所有”蚂蚁目标(它自己编译)。

这看起来很不妥当,因为ant正在编译而不是Eclipse,Eclipse编译器会生成更好的错误消息。目前还不清楚Ant构建还是默认的Java构建应该先运行。当项目中的任何事情发生变化时,我们需要告诉蚂蚁目标基本上运行。这基本上导致蚂蚁在每次保存时运行整个机器。这很慢。 (如果我们没有编辑代码生成器的输入文件,那么我们可以跳过运行代码生成器,并且蚂蚁甚至需要很长时间才能确定它不必做任何事情。)

是在这里遵循策略的建议?

  • 我们是否需要分割的Ant构建成多个蚂蚁建设者,每个都有自己的一套监控的资源,其中一些在Java builder的运行时,Java Builder之后再运行其他人呢?
  • 我们应该先运行ant,然后运行Java构建器,反之亦然?什么应该是刷新设置?
  • 我们想告诉Eclipse重建其他人触摸的类文件吗?

感谢您的任何建议。

回答

0

你可能会发现,你并不需要为你的本地开发工作运行Ant构建。您应该让Eclipse负责编译代码并部署到本地Tomcat实例。在部署到共享开发环境时保存Ant构建。

当然,你需要调用一些东西来运行代码生成。但我猜你不需要经常这样做。您可以创建一个Eclipse启动配置来运行特定的Ant任务来生成代码并将其添加到您的收藏夹菜单。在需要时手动调用它。

7

委派代工作到Eclipse的最好办法就是通过Ant构建。 Look here关于如何设置生成器。

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

那么这种方式挂钩起来的建筑工地Targets标签:

Ant Builder Targets configuration

这将使你的项目很好地应对生成事件。

的下一步是使Eclipse自动编译生成的来源。

为此,在项目的根目录中创建一个名为generated-src的目录。这个目录应该是空的,你应该把它放在你的源代码管理系统的管理之下。由于会有一些生成的代码,因此将.xxxignore文件放入此目录。

一旦generated-src目录是原地的,使你的项目的源代码目录(在Java源标签构建路径)

Source directory

最后,但并非最不重要的,你想踢Eclipse的Java编译器,一旦你已经生成了你的源代码。为此,您需要修改您的Ant构建器的Refresh选项卡。

这里是做它的设置:

Refresh Tab

当您单击Specify Resources按钮,确保整个项目的目录选择,喜欢这里:

Selected Resources

这当项目中的任何内容发生变化时,它会启动ant builder,这可能会或可能不会重新生成源代码,从而导致java重新编译。

最后一张截图。确保两个build.xml和基本目录是相对于你的$ {workspace_loc}在Builder的Main选项卡,喜欢这里(基本上只使用Browse Workspace按钮):

Builder's Main Tab

一旦做到这一点,转播generate-codecleanup-generated-code到您的build.xml中的常规目标是您要求进行命令行构建的。通过这种方式,Eclipse和您的命令行构建完成了与代码生成完全相同的步骤。此外,您的Eclipse版本将完全对您项目的源代码非常敏感。