Java插件库着色

标签 java maven plugins

我正在构建一个基于 Java 的 HTTP 服务器,带有类似 bukkit 的 (minecraft) 插件系统。我想以一种互不干扰的方式加载插件库,例如如果两个插件在其 jar 中打包相同的库,则可能会出现问题。

我知道这可以通过“maven shading”来完成。然而,我对maven唯一了解的是如何向项目添加依赖项。 Maven 教程并没有让我变得更明智。

我已经阅读了有关构建目标之类的内容,但没有任何 pom.xml 示例解释其工作原理或您有哪些选项。当我搜索“Java插件maven shading”或类似的结果时,我得到的唯一结果是关于maven shading插件(我不明白第一件事)

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

也欢迎其他解决方案。

最佳答案

另一个论坛上的有人告诉我在 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>

关于Java插件库着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26956393/

相关文章:

maven - 在服务器上创建maven仓库

c++ - 如何在 Windows 上编写 C++ FireFox 3 插件(不是扩展)?

jquery - 循环插件拒绝滚动,不知道为什么

java - Android 应用程序中的自定义单选按钮在禁用时不会变灰

java - 如何获取索引别名的映射

java - 连续动画安卓

javascript - 将 Cordova 插件添加到 Vue-Cordova?

java - 从一个 ORM 迁移到另一个

java - 在其他模块中加载测试资源?

java - 使用 Maven 的 SpringMVC 和 Hibernate