用 maven 編譯完成後 ,生産了 <code>ui-compressor-1.0.0.jar</code>, 此時執行
提示下面找不到依賴的包:
解壓 jar ,發現隻有程式的主檔案在,其他的依賴的包都不見,當然無法正常運作。
在項目 pom.xml 中添加 maven-assembly-plugin:
其中,<code>mainclass</code> 是你的程式主入口檔案
編譯、安裝依賴
執行:
成功運作了
maven-assembly-plugin 插件主要是為了允許使用者輸出項目及其依賴關系、子產品、網站文檔和其他檔案到一個單獨的可釋出的文檔中。
目前支援釋出的格式有:
zip
tar
tar.gz (or tgz)
tar.bz2 (or tbz2)
jar
dir
war
及其他由 archivemanager 配置的任意格式
使用該插件隻需三步:
配置 assembly 插件到項目的 pom.xml,
項目中運作 "mvn assembly:single"
将要使用 assembly descriptor 的,填入 <code><descriptorrefs>/<descriptorref></code> 參數即可。如果使用自定義的 assembly descriptor 配置 你的 descriptor 路徑到 <code><descriptors>/<descriptor></code> 參數。
注意裝配的單個調用 assembly 插件可以從多個 descriptor 産生 assembly,這樣最大的靈活性允許您自定義項目的二進制檔案項。
舉例,現在項目要生産 jar ,編譯檔案中要包含項目的依賴,配置如下:
注意 assembly 插件允許你使用多個 <code>descriptorrefs</code>,産生不同的assembly.
另外,我們已經建立了一個自定義 descriptor 名字叫 <code>src.xml</code> 在 src/assembly ,可以這樣使用:
将 <code>single</code> 目标綁定到項目的生命周期,配置如下
打包:
當編譯完成,target 目錄下,生産了一個 jar
一旦您建立了這個獨立的 jar,就可以通過 -jar 在 jvm 運作。
通過 mainclass 來配置 jar 中的 main-class 屬性:
再次編譯 meta-inf/manifest.mf 中可以看到
注意隻有 jar 和 war 的 assembly 格式支援<code><archive></code>配置
參考:
<a href="http://maven.apache.org/plugins/maven-assembly-plugin/">http://maven.apache.org/plugins/maven-assembly-plugin/</a>