从Eclipse中,我发现可以轻松导出项目的Ant构建文件。它提供了对第三方库和一些基本目标的引用。我正在从全局构建文件中使用它。唯一令我困扰的是,如果在项目结构中进行了某些修改(例如添加新的第3方库),则我们必须考虑(有时可能很难!)重新生成该build.xml文件。我想知道这里是否有人知道自动更新的方法。“自动”是指不必在每次需要时都明确要求Eclipse重新生成它。我不知道可能是什么触发因素...
有什么想法或知识吗?
谢谢!
MJ
从Eclipse中,我发现可以轻松导出项目的Ant构建文件。它提供了对第三方库和一些基本目标的引用。我正在从全局构建文件中使用它。唯一令我困扰的是,如果在项目结构中进行了某些修改(例如添加新的第3方库),则我们必须考虑(有时可能很难!)重新生成该build.xml文件。我想知道这里是否有人知道自动更新的方法。“自动”是指不必在每次需要时都明确要求Eclipse重新生成它。我不知道可能是什么触发因素...
有什么想法或知识吗?
谢谢!
MJ
Answers:
右键单击Eclipse项目,然后依次单击“导出”,“常规”和“ Ant构建文件”。我认为虽然无法自定义输出格式。
我一直在尝试自己做同样的事情。我发现是在org.eclipse.ant.internal.ui.datatransfer.AntBuildfileExportPage.java文件中启动了“导出Ant Buildfile”。它位于org.eclipse.ant.ui插件中。
要查看源代码,请使用“插件开发”透视图并打开“插件”视图。然后右键单击org.eclipse.ant.ui插件,然后选择import as>源项目。
我的计划是创建一个Java程序,以编程方式启动ant构建文件的生成,并在每次构建时通过将ant文件添加到我的项目的构建器中来在Ant文件中调用此程序(在构建器下,右键单击projet上的首选项)标签)。
我遇到了同样的问题,我们的工作环境基于Eclipse Java项目,并且我们需要自动构建ANT文件,以便我们可以使用连续集成服务器(在本例中为Jenkins)。
我们推出了自己的Eclipse Java to Ant工具,该工具现在可以在GitHub上使用:
要使用它,请致电:
java -jar ant-build-for-java.jar <folder with repositories> [<.userlibraries file>]
第一个参数是包含存储库的文件夹。它将以递归方式在文件夹中搜索任何.project
文件。该工具将build.xml
在给定的文件夹中创建一个。
(可选)第二个参数可以是从Eclipse导出的.userlibraries文件,当任何项目使用Eclipse用户库时都需要该文件。该工具仅通过使用相对路径的用户库进行了测试,这就是我们在存储库中使用它们的方式。这意味着项目所需的JAR和其他归档文件位于Eclipse项目中,并从那里进行引用。
该工具仅支持来自其他Eclipse项目和Eclipse用户库的依赖项。
查看项目中的.classpath文件,该文件可能包含所需的大多数信息。最简单的选择可能是滚动您自己的“ build.xml导出”,即在构建本身期间将.classpath处理到新的build.xml中,然后使用ant子任务调用它。
对我来说,解析一点XML比挂接到Eclipse JDT容易得多。
如果您只需要classpath条目,我将执行以下类似操作以使用eclipse构建路径。
<xmlproperty file=".classpath" collapseAttributes="true" delimiter=";" />
然后在路径中设置该值
<path id="eclipse.classpath">
<pathelement path="${classpath.classpathentry.path}"/>
</path>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${build}" updatedProperty="compiled">
<classpath refid="eclipse.classpath"/>
</javac>
</target>
我是将Ant导出过滤器捐赠给Eclipse的人。我添加了自动导出功能,但仅将其添加到我的个人插件eclipse2ant中,我仍然维护该功能以协调错误修复。
不幸的是,我没有时间将其合并到官方的Eclipse构建中。