我正在使用类似bukkit(minecraft)的插件系统构建基于Java的HTTP服务器。我想以这样一种方式加载插件库,使它们不会相互干扰,例如:如果两个插件在他们的jar中打包相同的库,可能会出错。
我知道这可以通过“maven shading”来完成。但是,关于maven,我唯一知道的是如何将依赖项添加到项目中。 maven教程并没有让我更聪明。
我已经阅读过像构建目标这样的事情,但是没有任何pom.xml示例解释它是如何工作的或者你有什么样的选择。当我搜索“Java插件maven着色”或类似的时候,我得到的唯一结果是关于maven着色插件(我不了解其中的第一件事)
我不想太深入maven命令行,我正在使用eclipse maven插件。
欢迎其他解决方案。
答案 0 :(得分: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>