2012-05-30 43 views
1

我有用于Docbook的Ant构建文件。现在我要将该Ant构建文件转换为使用Xsltproc处理器的Makefile。我对Makefile或Ant都不是特别熟悉。所以请帮我转换它。我应该遵循哪些资源?将Ant构建文件转换为Makefile

在这里,我想, 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个代码。 谢谢.. !!

+0

一些DocBook考虑使用Docbkx Maven插件相反,它(解析器,DTD,样式表...)整合了整个的Docbook工具链成为一个非常简单的构建配置:http://code.google.com/ p/docbkx-tools –

+0

谢谢..但我需要将ant脚本转换为Makefile。不适用于maven。我为那个转换部分做了什么。我想我必须这样做。如果你能请告诉我 – harsh

回答

4

Make和ANT是非常不同的技术。除了最简单的用例之外,您的要求很难为所有人提供帮助。

下面是一些技术挑战:

  • ANT是做不出。表面上它看起来很相似,但下面的工作方式完全不同。
  • 令人惊讶的是不是很平台。不同的风格有微妙的差异,可能会打破ANT到Makefile转换器。
  • ANT旨在支持Java程序,这意味着它具有丰富的语法来管理恶意的事情,如Java类路径。再次难以翻译。

更新

以下ANT java task

<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 
+0

谢谢。我知道这很难......但我必须为项目做到这一点。我有4个jar文件,必须将它们添加到类路径中。如果你可以请给我一个代码,将这些jar文件添加到makefile中的classpath中。 – harsh

+0

@harsh抱歉,无法为您编写Makefile逻辑,但我提供了一个如何将ANT java任务转换为Unix命令行的示例。 –

+0

@马克:非常感谢。那是我正在寻找的代码。我已经完成了复制,并且只完成了java任务。我把我的Java任务如下 的java \ \t -DhtmlDir = docsrc \ \t -DindexerLanguage = EN \ \t -DhtmlExtension = HTML \ \t -DdoStem =真\ \t -cp $ CLASSPATH :$(DOCBOOK_STYLES)/webhelpindexer.jar:$(DOCBOOK_STYLES)/lucene-analyzers-3.0.0.jar:$(DOCBOOK_STYLES)/lucene-core-3.0.0。罐子\ \t com.nexwave.nquindexer.IndexerMain \ 但它给错误 “在线程异常 ”的说法 主要“ java.lang.NoClassDefFoundError: COM/nexwave/nquindexer/IndexerMain” – harsh