自 Apache Ant 1.10.6 起
從模組化 jar 檔案建立可連結的 jmod 檔案,並可選擇從其他應用程式檔案(例如原生函式庫和授權文件)建立。等同於 JDK 的 jmod 工具。
需要 Java 9 或更新版本。
屬性 | 說明 | 必要 |
---|---|---|
destFile | 要建立的 jmod 檔案。 | 是 |
classpath | 要放置在 jmod 檔案中的檔案。通常為單一模組。 | 除非存在巢狀 <classpath> ,否則需要其中一個。 |
classpathref | 要放置在 jmod 檔案中的檔案,以 參考 形式提供,指向其他地方定義的路徑。 | |
modulepath | classpath 模組依賴的模組位置。 | 否 |
modulepathref | classpath 模組依賴的模組位置,以 參考 形式提供,指向其他地方定義的路徑。 | 否 |
commandpath | 包含要包含在 jmod 中的原生指令的目錄。 | 否 |
commandpathref | 包含要包含在 jmod 中的原生指令的目錄,以 參考 形式提供,指向其他地方定義的路徑。 | 否 |
headerpath | 包含要包含在 jmod 中的標頭檔案的目錄。 | 否 |
headerpathref | 包含要包含在 jmod 中的標頭檔案的目錄,以 參考 形式提供,指向其他地方定義的路徑。 | 否 |
configpath | 包含要包含在 jmod 中的使用者可編輯設定檔的目錄。 | 否 |
configpathref | 包含要包含在 jmod 中的使用者可編輯設定檔的目錄,以 參考 形式提供,指向其他地方定義的路徑。 | 否 |
legalpath | 包含要包含在 jmod 中的法律授權和公告的目錄。 | 否 |
legalpathref | 包含要包含在 jmod 中的法律授權和公告的目錄,以 參考 形式提供,指向其他地方定義的路徑。 | 否 |
nativelibpath | 包含要包含在 jmod 中的原生函式庫的目錄。 | 否 |
nativelibpathref | 包含要包含在 jmod 中的原生函式庫的目錄,以 參考 形式提供,指向其他地方定義的路徑。 | 否 |
manpath | 包含要包含在 jmod 中的手冊頁面的目錄。 | 否 |
manpathref | 包含要包含在 jmod 中的手冊頁的目錄,以 參照 在其他地方定義的路徑提供。 | 否 |
版本 | jmod 的模組版本。 | 否 |
主類別 | 作為模組可執行進入點的類別。 | 否 |
平台 | jmod 的目標平台。通常採用 作業系統- 架構 的形式。可以透過執行類似 jmod describe $JDK_HOME/jmods/java.base.jmod | grep -i platform 的指令,查看特定 JDK 的平台。 |
否 |
hashModulesPattern | 正規表示式,用於模組路徑中依賴於正在建立的 jmod 的模組名稱,並且應該為它們產生雜湊並包含在新 jmod 中。 | 否 |
resolveByDefault | 布林值,表示當 jmod 在工具和應用程式搜尋的模組路徑中時,是否應成為預設解析的模組之一。 | 否。預設為 true。 |
moduleWarnings | 在解析不建議使用的模組時,是否發出警告。下列其中一個或多個的逗號分隔清單
|
否,預設為不發出警告。 |
classpath
、modulepath
、commandpath
、headerpath
、configpath
、legalpath
、nativelibpath
和 manpath
屬性是 類似的路徑結構,也可以透過巢狀 <classpath>
、<modulepath>
、<commandpath>
、<headerpath>
、<configpath>
、<legalpath>
、<nativelibpath>
和 <manpath>
元素分別設定。
version
屬性的細緻替代方案。此巢狀元素有這些屬性
屬性 | 說明 | 必要 |
---|---|---|
數字 | 主要版本號碼。可以是任何文字,只要不包含連字號 (- ) 或加號 (+ ) 即可。 |
是 |
preRelease | 前置版本。可以是任何文字,只要不包含加號 (+ ) 即可。 |
否 |
build | 建置版本。可以是任何文字。 | 否 |
請參閱 ModuleDescriptor.Version 文件,以取得每個版本元件意義的完整說明。
如同 moduleWarnings
屬性,但僅指定發出警告的單一基礎。這個子元素可以出現多次,以指定 jmod 工具應在哪些多個條件下發出警告。
屬性
屬性 | 說明 | 必要 |
---|---|---|
reason | 將導致 jmod 工具發出警告的條件。其中之一
| 是 |
從單一模組 jar 檔案建立 jmod
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar"/>
從依賴另一個模組的模組 jar 檔案建立 jmod
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar"> <modulepath> <pathelement location="libs/thirdpartyutils.jar"/> </modulepath> </jmod>
建立具有模組版本的 jmod
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar" version="1.2.1-ea+29"/>
從模組版本元件建立版本化 jmod
<property name="version" value="1.2.1"/> <buildnumber/> <loadfile property="buildnum" srcFile="build.number"/> <jmod destfile="MyApp.jmod" classpath="build/myapp.jar"> <version number="${version}" build="${buildnum}"/> </jmod>
建立具有主類別的 jmod
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar" mainclass="com.example.myapp.MainWindow"/>
建立適用於特定平台的 jmod,可能與目前的平台不同
<jmod destfile="MyApp.jmod" classpath="build/myapp.jar" platform="windows-amd64"/>