日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了正確呈現指向使用破折號而不是圓括號和逗號的外部html javadoc文檔的javadoc方法鏈接的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

使用Java版本10及更高版本的javadoc工具生成的HTMLjavadoc文檔在方法鏈接/標簽中使用圓括號和逗號,例如:https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html#wait(long,int)。
但是,舊版本會用破折號-替換這些字符,例如:https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html#wait-long-int-。
(感謝this answer解釋格式取決于javadoc版本)

現在,當使用Java版本10+構建項目時,我如何才能使maven-javadoc-plugin呈現正確的方法鏈接,這些方法來自使用舊版本生成其HTMLjavadoc文檔的項目?(即,當maven-javadoc-plugin的配置節中的pom.xml中的<link>標記之一指向一組使用破折號而不是圓括號和逗號的HTMLjavadoc文檔時)。
默認情況下,使用圓括號和逗號,這會導致鏈接指向給定類頁面的頂部,而不是所需的方法部分。

使用較舊的javadoc工具為使用Java 10+的項目生成HTML不是一種解決方案,因為在這種情況下,從docs.oracle.com的標準庫到方法的鏈接(或到使用Java 10+構建的任何其他外部項目的鏈接)將被破壞。最終解決方案必須僅適用于特定的<link>節。

推薦答案

根據RFC 3986,這兩種變體都有效。

例如,帶有Java&lt;=9參數的方法的URL片段如下:

https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html#equals-java.lang.Object-

對于Java 10-17,它們如下所示:

https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html#equals(java.lang.Object)

如果您{@link ...}使用與您不同的工具(或使用同一工具的不同版本)創建其Javadoc的庫的Javadoc,則您目前運氣不佳。

如果我們真的沒有在Javadoc工具中找到相應的選項(我認為我們不會找到,因為為什么外部鏈接的處理方式應該與內部鏈接不同),我首先想到的是Maven Resources插件。它具有resource filtering的功能(這是一個糟糕的命名,因為實際上它是字符串內插),也許這可以用來相應地替換字符。

如果這不起作用,還有其他選擇,例如在構建期間運行外部程序。讓我想一想,試一試。我相信我能想出一個可行的解決方案。不過,請耐心等待?,F在是凌晨4:30?,F在就在這里,我想我很快就需要幾個小時的睡眠。如果有人在此期間拿出解決方案,那就更好了(雖然我不這么認為,但誰知道呢……:)

方法1---release選項

javadoc‘s --release選項:

以下核心javadoc選項等同于對應的javac選項。有關使用這些選項的詳細說明,請參閱Standard Options:


--release

javac‘s --release

[好吧,這很有趣……好吧,不,這很令人尷尬:到--release及其Note: ...的深層鏈接最終并不起作用,因為跳轉到它們幾厘米后顯然是JS(AJAX?)開始使用,頁面最終落在它的頂部。我要Sun Microsystems回來!]

--release release

針對特定的VM版本編譯公共的、受支持的和有文檔記錄的API。支持的release目標包括6、78、91011。

如果此javadoc --release解決了您的問題,則無需進一步考慮手動解決方案。

更新:--release/<release>選項不能解決問題。它只是指定https://docs.oracle.com/javase/<version>/docs/api/...中的鏈接目標版本。上面的文檔在這方面沒有太大幫助,maven-javadoc-plugin doc也沒有:&quot;&lt;Release&>提供與指定版本&Quot;的源代碼兼容性。至少它現在被記錄在這里了。;)

方法2-Maven資源篩選

Maven’s resource filtering也沒有幫助,因為在Javadoc注釋中,只有一個參數的方法的方法引用可能如下所示:

/**
 * <p>Link to {@link Logger#info}</p>
 * <p>Link to {@link Object#equals}</p>
 */

對于字符串內插,我們需要${...}(或不常見和不常見的@...@)定義。

它將(在理論上)以顯式形式運行:

/**
 * <p>"${(}" and "${)}" replaced by '-', if the additional '{' and '}' don't conflict with Javadoc comment's tags – but it seems they do</p>
 * <p>Link to {@link Logger#info${(}String${)}}</p>
 * <p>Link to {@link Object#equals${(}Object${)}}</p>
 *
 * <p> "@(@" and "@)@" replaced by '-'</p>, if the additional '@'s don't conflict with Javadoc comment's tags – but it seems they do</p>
 * <p>Link to {@link Logger#info@(@String@)@}</p>
 * <p>Link to {@link Object#equals@(@Object@)@}</p>
 */

我還不知道這些&q;保留字符&是否可以轉義,如果可以,如何轉義。我找到了How do you escape curly braces in javadoc inline tags, such as the {@code} tag,但其中的任何內容都無法與{@link ...}一起使用。

更新

方法3-Maven XML插件xml:transform

不起作用,因為Javadoc HTML包含非X(HT)ML兼容的未關閉<meta ... ><link ... >%s。

方法4 a)-通過GMavenPlus Plugin

編寫Groovy腳本

使用FileVisitor,XPath-如果它與非X(HT)ML-兼容的HTML一起工作-或其他任何工作方式。

XPath不工作:[Fatal Error] :18:3: The element type "link" must be terminated by the matching end-tag "</link>".

方法4 b)-恢復maven-javascript-plugin或Maven Javascript Plugin之一,…

.添加一個目標javascript:execute并使用帶有其CSS選擇器和DOM操作的JS腳本。

這篇關于正確呈現指向使用破折號而不是圓括號和逗號的外部html javadoc文檔的javadoc方法鏈接的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:呈現 圓括號 指向 正確 破折號 而不是 逗號
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定