eclipse里面调试maven插件

某日,在执行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远程调试

eclipse里面调试maven插件_第1张图片

注意这里面的端口,要和下面的保持一致


三:运行

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就会继续往下执行,就会进入到第一步打的断点中去了,就可以调试了。

你可能感兴趣的:(maven)