java - 从Eclipse自动生成ant build.xml文件的任何方法?
从Eclipse中,我发现我可以轻松地为我的项目导出Ant构建文件。 它提供对第三方库和一些基本目标的引用。 我在我的全局构建文件中使用它。 困扰我的唯一问题是,如果在项目结构中修改某些内容(比如添加新的第三方库),我们必须考虑(有时可能很难!)重新生成该build.xml文件。 我想知道这里是否有人知道如何让它自动更新。 通过“自动”,我的意思是没有必要明确要求Eclipse在每次需要时重新生成它。 我不知道触发器可能是什么......
对此有何想法或知识?
谢谢!
MJ
7个解决方案
70 votes
右键单击Eclipse项目,然后单击“导出”,然后单击“常规”,再单击“Ant构建文件”。 我不认为可以自定义输出格式。
Guillaume answered 2019-04-11T11:48:00Z
5 votes
我一直在努力做同样的事情。 我发现“Export Ant Buildfile”在org.eclipse.ant.internal.ui.datatransfer.AntBuildfileExportPage.java文件中被启动。 它驻留在org.eclipse.ant.ui插件中。
要查看源,请使用Plug-in Development透视图并打开Plug-ins视图。 然后右键单击org.eclipse.ant.ui插件并选择import as> 源项目。
我的计划是创建一个Java程序,以编程方式启动ant构建文件生成,并在每次构建时通过将ant文件添加到我的项目的构建器来在Ant文件中调用它(在构建器下的项目的右键单击首选项) 标签)。
Tristan Ratchford answered 2019-04-11T11:48:40Z
4 votes
我遇到了同样的问题,我们的工作环境基于Eclipse Java项目,我们需要自动构建一个ANT文件,以便我们可以使用持续集成服务器(在我们的例子中是Jenkins)。
我们推出了自己的Eclipse Java to Ant工具,现在可以在GitHub上使用:
蚂蚁集结了Java的
要使用它,请致电:
java -jar ant-build-for-java.jar [<.userlibraries file>]
第一个参数是包含存储库的文件夹。 它将以递归方式搜索文件夹以查找任何.project文件。 该工具将在给定文件夹中创建build.xml。
可选地,第二个参数可以是来自Eclipse的导出的.userlibraries文件,当任何项目使用Eclipse用户库时需要该文件。 该工具仅使用相对路径的用户库进行测试,这就是我们在repo中使用它们的方式。 这意味着项目所需的JAR和其他归档都在Eclipse项目中,并从那里引用。
该工具仅支持来自其他Eclipse项目和Eclipse用户库的依赖项。
JBishop answered 2019-04-11T11:49:49Z
2 votes
查看项目中的.classpath文件,该文件可能包含您需要的大部分信息。 最简单的选择可能是滚动自己的“build.xml导出”,即在构建过程中将.classpath处理成新的build.xml,然后使用ant子任务调用它。
解析一点XML对我来说比连接Eclipse JDT要容易得多。
Jan Schiefer answered 2019-04-11T11:50:22Z
2 votes
如果您只需要类路径条目,我会执行以下操作来使用eclipse构建路径。
然后在路径中设置该值
scott answered 2019-04-11T11:50:55Z
1 votes
我是向Eclipse捐赠Ant导出过滤器的人。 我添加了自动导出功能,但仅限于我的个人插件eclipse2ant,我仍然维护它以协调错误修复。
不幸的是,我没有时间将它合并到官方的Eclipse版本中。
J2G answered 2019-04-11T11:51:27Z
0 votes
选择文件&gt; 从主菜单导出(或右键单击项目名称,然后选择导出&gt;导出...)。
在“导出”对话框中,选择“常规”&gt; Ant Buildfiles如下:
点击下一步。 在Generate Ant Buildfilesscreen中:
检查列表中的项目。
取消选中“使用Eclipse编译器创建目标以编译项目”选项 - 因为我们要创建一个独立于Eclipse的构建文件。
保留Ant buildfile的Name作为默认值:build.xml
单击Finish,Eclipse将在项目目录下生成build.xml文件,如下所示:
双击build.xml文件以在Ant编辑器中打开其内容:
资源
Premraj answered 2019-04-11T11:52:45Z