2014-11-16 63 views
1

我正在用bukkit-like(minecraft)插件系統構建一個基於Java的HTTP服務器。我想以不會相互干擾的方式加載插件庫,例如如果兩個插件在他們的jar包中包含相同的庫,可能會出錯。Java插件庫着色

我知道這可以用「maven shading」來完成。但是,我知道的唯一一件關於maven的是如何將依賴關係添加到項目中。而Maven的教程並沒有讓我更聰明。

我已經閱讀了有關構建目標等一些東西,但沒有任何pom.xml示例解釋如何工作或你有什麼樣的選擇。當我搜索「Java插件Maven着色」或類似的結果,我得到的只是關於Maven着色插件(我不明白第一件事)

我不想變得太深到maven命令行中,我使用了一個eclipse maven插件。

其他解決方案也歡迎。

回答

1

有人在另一個論壇上告訴我在fat jar的範圍內進行搜索,這幫助我找到了答案。我發現this網站有一個很好的如何打包jar文件的例子:

<!-- Maven Shade Plugin --> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.3</version> 
    <executions> 
    <!-- Run shade goal on package phase --> 
    <execution> 
     <phase>package</phase> 
     <goals> 
     <goal>shade</goal> 
     </goals> 
     <configuration> 
     <transformers> 
      <!-- add Main-Class to manifest file --> 
      <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
      <mainClass>com.mkyong.core.utils.App</mainClass> 
      </transformer> 
     </transformers> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
+0

你在正確的軌道上。規範的地方是[Maven Shade Plugin Site](https://maven.apache.org/plugins/maven-shade-plugin/)。請參閱導航的「示例」部分以瞭解示例用法 –