1

我有 Docbook 中使用的 Ant 构建文件。现在我要将该 Ant 构建文件转换为使用 Xsltproc 处理器的 Makefile。我对 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>

我想在make中转换以上2个代码。谢谢..!!

4

1 回答 1

4

Make 和 ANT 是非常不同的技术。除了最简单的用例之外,您的要求很难满足。

以下是一些技术挑战:

  • ANT 不是 Make。从表面上看,它看起来很相似,但在下面的工作方式却大不相同。
  • 令人惊讶的是,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
于 2012-05-30T22:27:32.913 回答