某日,在执行maven打包的时候,报错了
java.lang.IllegalArgumentException: The header cannot be an empty string.
at org.apache.felix.utils.manifest.Parser.parseHeader(Parser.java:37)
at org.apache.felix.bundleplugin.BlueprintPlugin.analyzeJar(BlueprintPlugin.java:139)
at aQute.bnd.osgi.Analyzer.doPlugins(Analyzer.java:588)
at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:171)
at aQute.bnd.osgi.Builder.analyze(Builder.java:352)
看了许久,没有找到是哪里的错误,所以,决定调试该插件
首先,在pom.xml里面配置该插件的依赖(我用的是maven-bundle-plugin插件)
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.4</version>
</dependency>
这样的话,就可以在项目里面把该插件的源码下载下来
上面已经提示了,
at org.apache.felix.bundleplugin.BlueprintPlugin.analyzeJar(BlueprintPlugin.java:139)
里面有问题,那就在eclipse打开源码,在上面139行打个断点
二:配置eclipse远程调试
注意这里面的端口,要和下面的保持一致
三:运行
set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8787,suspend=y,server=y
mvn clean package
执行之后,maven暂停执行,等待客户端连接了,然后,在eclipse里面启动上一步创建好的debug配置,并且连接上8787端口
然后,maven就会继续往下执行,就会进入到第一步打的断点中去了,就可以调试了。