文档章节

maven-shade-plugin

internetafei
 internetafei
发布于 09/23 14:50
字数 358
阅读 8
收藏 0

最近,用规则引擎(drools)的封装了一个jar包,给别人使用。用的是maven-assembly-plugin打的包,可以把多个jar包里的class 给打成一个jar,感觉还是满好用的,但是打包成功后,发现报空指针错误,

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NullPointerException
    at org.kie.internal.utils.KieHelper.<init>(KieHelper.java:43)
    at com.topnet.ruleengine.RuleCall.geKieSession(RuleCall.java:145)
    at com.topnet.ruleengine.RuleCall.call(RuleCall.java:43)
    at M.main(M.java:17)

感觉少打哪个个东西了,于是把drools的包一个一个copy到项目里,挨个试验,发现drools-compiler-7.24.0.Final.jar是OK的,最终定位是kie.conf除了问题。后来去jar里一个,kie.conf是存在有,对比了一下文件内容,发现内容不对,然后就发现了多个kie.conf,判断是文件覆盖出了问题,知道问题就好办,在网上找了一下,发现maven-shade-plugin是个好东西,可以把多个文件内容合并。然后问题就解决了。

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
              <execution>
                <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
                <configuration>
                  <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                              <resource>META-INF/kie.conf</resource>
                    </transformer>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>com.topnet.ruleengine.RuleCall</mainClass>
                    </transformer>
                  </transformers>
                </configuration>
              </execution>
            </executions>
          </plugin>

© 著作权归作者所有

internetafei

internetafei

粉丝 16
博文 143
码字总数 34390
作品 0
郑州
高级程序员
私信 提问
Maven构建可执行jar包--maven-shade-plugin

1、将工程打成jar包(不是可执行的jar包) 普通的maven java工程可以通过pom文件的配置将工程打成jar包,但是该jar包无法执行(通过java -jar xxx.jar此方式),因为jar包下的MANIFEST.MF文件中没...

醉公子
2016/08/16
434
1
Maven 项目打包需要注意到的那点事儿

关于 Maven 打 war 包 对 J2EE 项目打 war 包。其实很简单,你只需要把 pom.xml 中的 <packaging>jar</packaging> 换成 <packaging>war</packaging> 就可以使用 mvn package 命令对其打 war ......

岁月留痕
2015/12/30
1K
0
常用Maven 插件总结

一. 打包类 1. Shade Plugin 用来打可执行的Jar包 示例: <build> <finalName>storm-start-${project.version}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupI......

marvin_vov
2015/10/20
1K
0
根据 Jar 文件直接创建 Windows 的可执行程序

程序员经常被要求将一个 Java 应用程序打包成 Windows 下的可执行程序。下面这个简单的实例就是演示如何创建一个包含开发商信息的 Windows 可执行程序,并包含一个不错的图标。这里需要用到 ...

曾沙
2012/11/26
722
0
根据 Jar 文件直接创建 Windows 的可执行程序

程序员经常被要求将一个 Java 应用程序打包成 Windows 下的可执行程序。下面这个简单的实例就是演示如何创建一个包含开发商信息的 Windows 可执行程序,并包含一个不错的图标。这里需要用到 ...

红薯
2012/08/13
6.7K
12

没有更多内容

加载失败,请刷新页面

加载更多

规则引擎

解决问题 版本迭代速度更不上业务变化,但是若多个业务同时变化,除了为每个业务设计专属配置项也不利于操作。就想服务接口单纯化,将复杂多变的业务逻辑交给规则引擎,让用户在web端或cs端自...

无极之岚
23分钟前
4
0
OSChina 周三乱弹 —— 欢迎你来做产品经理

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :10多次劲歌金曲获奖,更多叱咤歌坛排名,黎明才应该是四大天王之首,只可惜拍的电影太少。单曲循环一个多月的歌,力荐 《无名份的...

小小编辑
今天
202
9
500行代码,教你用python写个微信飞机大战

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!...

上海小胖
今天
10
0
关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部