我们的项目有非常自定义的 ant 构建文件,基本上是这样做的:
目前,我们的 ant 集成包括告诉 Eclipse 运行“do it all”ant 目标(它自己编译)。
这似乎很可疑,因为 ant 正在编译而不是 Eclipse,并且 Eclipse 编译器会产生更好的错误消息。还不清楚是应该先运行 ant 构建还是默认 Java 构建。当项目中的任何内容发生变化时,我们需要告诉 ant 目标基本上运行。这导致 Ant 在每次保存时都运行整个机器,基本上。这很慢。 (如果我们没有编辑代码生成器的输入文件,那么我们可以跳过运行代码生成器,ant 需要很长时间才能弄清楚它不需要做任何事情。)
这里有要遵循的策略建议吗?
感谢您的任何建议。
最佳答案
将生成作业委托(delegate)给 Eclipse 的最佳方式是通过 Ant 构建器。 Look here关于如何设置构建器。
在您的 build.xml
文件创建 2 个目标:generate-code
和 cleanup-generated-code
.
然后以这种方式将它们连接到 builder 的 Targets
标签:
这将使您的项目能够很好地响应构建事件。
下一步是让 Eclipse 自动编译生成的源代码。
为此,在项目的根目录中创建一个名为 generated-src
的目录。 .这个目录应该是空的,你应该把它放在你的源代码控制系统的管理之下。因为会有一些生成代码,所以把 .xxxignore 文件放到这个目录下。
一次generated-src
目录就地,使其成为您项目的源目录(Java Build Path 中的 Source 选项卡)
最后但并非最不重要的一点是,一旦生成了源代码,您就想启动 Eclipse 的 java 编译器。为此,您需要修改 Refresh
Ant builder 的选项卡。
这是执行此操作的设置:
当您点击 Specify Resources
按钮,确保选择了整个项目目录,如下所示:
这样,当您的项目中的任何内容发生更改时,它会启动 ant 构建器,它可能会或可能不会重新生成源代码,这将导致 java 重新编译。
最后一张截图。确保 build.xml
和基本目录是相对于你在 Builder 的 Main
中的 ${workspace_loc} 的。选项卡,像这里(基本上只使用 Browse Workspace
按钮):
完成后,连接 generate-code
和 cleanup-generated-code
到您的build.xml
中的常规目标你会调用命令行构建。这样,Eclipse 和您的命令行构建执行的代码生成步骤完全相同。此外,您的 Eclipse 构建将对 完全敏感。真实 你的项目的来源。
关于eclipse - 从 Eclipse 使用 ant 构建的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828321/