2012-05-30 64 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