【发布时间】:2013-10-08 15:25:08
【问题描述】:
我是 Ant 的新手(我来自 Maven,此时,Ant 是我的噩梦)。
我有以下情况:
在 Eclipse 工作区中,我有一些 Java 项目,它们相互交互组成最终的单个应用程序。
其中一个实现应用程序 GUI 的项目(名为 CrystalIceGUI)本身包含独特的 build.xml Ant 脚本,最多简化,执行以下操作:
1) 编译所有项目(被视为 CrystalIceGUI 项目的依赖项)
2) 为每个项目创建一个名为 Release 的目录(在适当的项目中)并将与该项目相关的 .jar 文件放入其中。 (例如其中一个项目名为 ShellExtBridge,因此 Ant 脚本将创建以下目录:ShellExtBridge/Release 并将创建的 .jar > 该目录中ShellExtBridge的文件。
3) 最后为主工程(CrystalIceGUI)创建如下结构: 在CrystalIceGUI工程中创建一个名为Relaese的目录,并在该目录放置CrystalIceGUI工程相关的.jar文件。
此外,创建此目录 CrystalIceGUI/Release/lib,其中包含之前为依赖项目创建的所有 .jar。
现在我的问题是:老板要求我为每个项目创建一个 Ant 脚本。这些 Ant 脚本只需在每个项目中创建一个 Release 文件夹,为项目创建 jar 并将 jar 放入此 Release 文件夹中。但是我对如何做有点困惑。
我的想法是这样的:对于每个项目,我从旧的 Ant 脚本(执行主项目中所有工作的脚本)中提取与我正在处理的项目相关的部分。
例如,对于名为 ShellExtBridge 的上一个子项目:我从旧的 build.xml ant 脚本中获取这部分代码:
<target name="shellextbridge"
description="Packs classes of shellextbridge">
<mkdir dir="${project.libdir}" />
<javac srcdir="${deps.shellextbridge.dir}/Project/src" destdir="${deps.shellextbridge.dir}/Project/bin"/>
<jar destfile="${deps.shellextbridge.dir}/Release/${deps.shellextbridge.jar}" index="false">
<fileset dir="${deps.shellextbridge.dir}/Project/bin"/>
<manifest>
<attribute name="Created-By" value="${info.software.author}" />
<attribute name="Main-Class" value="com.techub.crystalice.rmi.Main"/>
</manifest>
</jar>
<copy file="${deps.shellextbridge.dir}/Release/${deps.shellextbridge.jar}" tofile="${project.libdir}/${deps.shellextbridge.jar}"/>
<copy file="${deps.shellextbridge.dir}/Release/${deps.shellextbridge.jar}" tofile="${project.deploy}/lib/${deps.shellextbridge.jar}"/>
<copy file="${deps.shellextbridge.dir}/Release/${deps.shellextbridge.jar}" tofile="${project.dev.deploy.dir}/${deps.shellextbridge.jar}"/>
</target>
我将它放入一个新的 build.xml ant 脚本,该脚本特定于 ShellExtBridge 项目(更改路径)
可以很好地解决他们要求我做的事情吗?
对不起,如果我一直住,但直到昨天才看到蚂蚁,我对如何行动有很多疑问
Tnx
安德烈亚
【问题讨论】: