Java插件库着色

时间:2014-11-16 11:25:06

标签: java maven plugins

我正在使用类似bukkit(minecraft)的插件系统构建基于Java的HTTP服务器。我想以这样一种方式加载插件库,使它们不会相互干扰,例如:如果两个插件在他们的jar中打包相同的库,可能会出错。

我知道这可以通过“maven shading”来完成。但是,关于maven,我唯一知道的是如何将依赖项添加到项目中。 maven教程并没有让我更聪明。

我已经阅读过像构建目标这样的事情,但是没有任何pom.xml示例解释它是如何工作的或者你有什么样的选择。当我搜索“Java插件maven着色”或类似的时候,我得到的唯一结果是关于maven着色插件(我不了解其中的第一件事)

我不想太深入maven命令行,我正在使用eclipse maven插件。

欢迎其他解决方案。

1 个答案:

答案 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>