我有Docbook中使用的Ant构建文件。现在,我将把这个 Ant 构建文件转换为一个使用 Xsltproc 处理器的生成文件。我对Makefile或Ant都不是特别熟悉。所以请帮我转换它。我应该遵循哪些资源?
在这里,我想,1. 将文件夹结构及其内容复制到另一个文件夹中2. 配置 Java 系统属性3. 配置类路径
在 ant 脚本中,它有这样的代码,
<copy todir="${output-dir}">
<fileset dir="${ant.file.dir}/template">
<include name="**/*"/>
</fileset>
</copy>
<java classname="com.nexwave.nquindexer.IndexerMain" fork="true">
<sysproperty key="htmlDir" value="${output-dir}/content"/>
<sysproperty key="htmlExtension" value="${html.extension}"/>
<classpath>
<path refid="classpath"/>
<pathelement location="${xercesImpl.jar}"/>
<pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>
</classpath>
</java>
我想在制作中转换上述 2 个代码。谢谢。。!!
Make 和 ANT 是非常不同的技术。除了最简单的用例之外,您的要求很难满足。
以下是一些技术挑战:
- ANT不是Make。从表面上看,它看起来很相似,但在下面的工作方式却大不相同。
- 令人惊讶的是,制作不是很跨平台。不同的口味有细微的差异,可能会破坏ANT到Makefile转换器。
- ANT旨在支持Java程序,这意味着它具有丰富的语法来管理诸如Java类路径之类的讨厌的东西。再次难以翻译。
更新
以下 ANT Java 任务
<java classname="com.nexwave.nquindexer.IndexerMain" fork="true">
<sysproperty key="htmlDir" value="${output-dir}/content"/>
<sysproperty key="htmlExtension" value="${html.extension}"/>
<classpath>
<path refid="classpath"/>
<pathelement location="${xercesImpl.jar}"/>
<pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>
</classpath>
</java>
可以转换为以下 Unix Java 命令行。
java
-DhtmlDir=$PUT_OUTPUT_DIR_HERE
-DhtmlExtension=$PUT_EXT_HERE
-cp $CLASSPATH:$PATH_TO_XERCES_JAR:/usr/share/xml-commons/lib/xml-apis.jar
com.nexwave.nquindexer.IndexerMain