手动开发一个maven插件系列1---调式maven插件代码

3 篇文章 0 订阅

Maven支持

平常我们打包一般直接使用mvn ...,实际上

在maven的bin目录下可以看到一个mvn, 一个是mvnDebug

我们常用的操作比如mvn clean

如果你想调试mvnDebug clean

那么如何在两个工程中进行通信debug,java提供了一个叫做Java Debug Wire Protocol (JDWP)的协议

 

如上图,进行通信和调试和处理,当然通信这块和协议这块应该有很多细节。明白了上面的操作过程,再来配置,就十分有方向

Step1: 启动监听

首先,在使用maven的工程通过执行命令启动监听,例如如下:

F:>mvnDebug saturn:zip
Listening for transport dt_socket at address: 8000

Step2:远程连接

其次,在编写的maven的工程启动接收远程连接并以此运行

启动接收远程连接的配置如下所示:

其中关键配置是:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

应用之后会在Run中出现,Debug Remote的栏目,如下图所示:

Step3:打断点并debug

点击运行,会启动工程,正常情况下,8000端口已经可以被连接进来,并会中断在代码中的断点处。

番外

值得一提的是,我们开发maven插件都是在org.apache.maven.plugin基础上进行的,它已经帮我们完成了实际中的大部分需求,所以我们在实际开发中只需要extends AbstractMojo并实现execute()方法即可,所以我们在打断点调试的时候也需要打在execute()方法执行的路径中。举例如下:

@Mojo(name = "run", requiresDependencyResolution = ResolutionScope.RUNTIME)
@Execute(phase = LifecyclePhase.COMPILE)
public class SaturnJobRunMojo extends AbstractMojo {

	@Parameter(property = "namespace")
	private String namespace;

	@Parameter(property = "executorName")
	private String executorName;

	@SuppressWarnings("unchecked")
	@Override
	public void execute() throws MojoExecutionException, MojoFailureException {}

参考

https://www.cnblogs.com/turn2i/p/11823884.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FeelTouch Labs

一杯咖啡的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值