2014-11-16 28 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/)。请参阅导航的“示例”部分以了解示例用法 –