2015-01-06 156 views
0

我想用Maven網站插件生成項目文檔。 「項目信息」和「項目報告」的默認佈局,結構和功能對我來說可以。 但是,如果項目中有這些文檔,我想添加一個額外的(第三個)「附加文檔」部分,該附加文檔鏈接到一些更多的文檔。Maven網站文檔:將鏈接添加到其他文檔

我可以創建一個目錄src/site/resources/otherDocu並根據需要將文檔複製到target/site/otherDocu目錄。但是,生成的網站並未鏈接到它們。

我想要第三部分「其他文檔」,列出並鏈接上述目錄中的文件。我想用盡可能小的開銷來做到這一點。具體來說,如果可以避免,我不想包含自己的site.xml,以及許多解決方案中描述的CSS等。我怎樣才能使用默認的網站配置,並只「注入」一部分?或者,如果這是唯一的方法,應該可以在父POM中僅配置一個文件(如site.xml)一次,併爲所有其他項目繼承該文件。我如何讓它列出src/site/resources/otherDocu中找到的文件並顯示鏈接?

或者,我也在想:我可以編寫一個自己的報告插件,這樣做,然後我只需要在POM的「reporting/plugins」部分指定這個插件,就像我爲其他報告插件。有了這個解決方案,我可以在「項目報告」部分創建一個額外的條目,就像其他報告插件一樣,這是朝着正確方向邁出的一步。但是我需要幾個條目(因爲有多個鏈接的文檔),或者一個條目「Additional docu」和子條目。

哪種方式更容易?你有推薦或類似的解決方案嗎?有沒有人有一個文件(site.xml或類似的),已經做了一些列表,不需要所有其他資源(圖片等),可以繼承?

回答

0

保持默認行爲的第一件事就是用something in your site descriptor:

<body> 
    <menu ref="reports"/> 
    <menu ref="modules"/> 
    </body> 

您使用的自動複製文件到目標suposed爲resources as you can read in the docs的事情。

此外,爲了自動創建文檔,您需要通過報告插件進行操作。

+0

非常感謝!我遵循你的建議,事實證明,通過編寫我自己的報告插件,我甚至不需要自己的站點描述符,但可以使用默認的(不需要我自己的site.xml)。我的報告的輸出被添加到報告的標準列表(由

'生成的報告列表)。 – user3489416

+0

順便說一句,我發現最有用的鏈接: [Codehaus:寫報告插件](http://docs.codehaus.org/display/MAVENUSER/Write+your+own+report+plugin),[Sonatype:寫插件](http://books.sonatype.com/mvnref-book/reference/writing-plugins-sect-custom-plugin.html)。 [4thline.org:about outputDirectory etc](http://4thline.org/articles/Howto%20write%20a%20Maven%20report%20plugin.html), [maven:Plugin configuration](http:// maven。 apache.org/guides/mini/guide-configuring-plugins.html), [maven:Java5 Annotations](http://maven.apache.org/plugin-tools/maven-plugin-plugin/examples/using-annotations的.html) – user3489416

0

這是我做了什麼..相對比較簡單:

的src /網站/ site.xml中:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<project name="${project.name}"> 
    <body> 
     <menu name="Menu Title"> 
      <item name="Documentation" href="docs.html"/> 
     </menu> 
    </body> 
</project> 

上面創建一個鏈接頁面docs.html。然後使用apt(或其他語言可能)

的src /網站/公寓/ docs.apt創建文檔頁面:

------------- 
    Documentation 
    ------------- 

Documentation 

    Some text {{{/path/to/doc}document}}. 

如果你不希望創建一個單獨的頁面,你可能只將鏈接插入site.xml中的文檔。

+0

謝謝,但不是我想要的原因有兩個:首先,擁有自己的site.xml刪除所有默認行爲(鏈接到項目信息和項目報告),我將不得不手工重構/包含我自己的site.xml(除非這可以通過一些非常短的代碼完成 - 可以嗎?)。其次,解決方案應該收集目錄「otherDocumentation」中的文件,而不必逐一列出它們。我希望爲所有項目提供一個通用的解決方案,即相同的文檔配置文件,這些文件會自動收集現有的項目文檔,這些文檔可能因項目而異。 – user3489416

+0

_首先,擁有自己的site.xml刪除所有的默認行爲......_ - 我展示的例子只是將菜單部分添加到默認的站點頁面,它並不會替換整個頁面。 _第二,解決方案應該收集目錄「otherDocumentation」中的文件,而不必一一列出._ - 在我自己的項目中,我使用xhtml和javascript生成動態內容。雖然這可能不適合您的需求,但它確實證明動態內容是可能的。 –

+0

_我舉的例子只是簡單的添加了一個菜單部分到默認的網站頁面,它並沒有取代整個頁面。 - 希望它是這樣的......當然,默認的頁面佈局和CSS等仍然存在,如果你是這個意思。但是當我使用你列出的site.xml時,所有其他菜單條目都消失了,剩下的只剩下site.xml中定義的一個。我可以使用'

'來再次添加默認菜單條目,但是想避免這種情況。按照@khmarbaise的建議,通過編寫自己的報告插件,找到更適合我的解決方案。 – user3489416

相關問題