首先要熟悉maven插件基础开发,可以参考下面的文章
上面简单说了maven插件的基础开发。下面来写咱们的处理方法,来对打包生成的jar文件进行处理。
先说下写这个插件的背景:是要开发一个jar的自动更新功能,同时生成更新的配置信息文件,同时因为jar直接暴露公网,感觉有点风险,就需要加密一下。刚开始写个小程序去处理,感觉好麻烦,直接打包时候处理多方便啊,就想写的maven插件来自动处理了。
首先,我们目标是要处理打包后的jar,这里就需要写明执行插件的生命周期,是package,如下
/**
* generate Update json in output directory.
*/
@Mojo( name = "generate",defaultPhase=LifecyclePhase.PACKAGE) // (since Maven 3.0)
public class MyMojo extends AbstractMojo{
@Parameter( name = "key")
private String key;//加密用的key
@Parameter( name = "needEncrypt",defaultValue = "false")
private String needEncrypt;//是否加密
@Parameter( name = "baseUrl",defaultValue = "")
private String baseUrl;//服务器地址
@Parameter( defaultValue = "${project.version}", readonly = true )
private String version;//版本,注意上面的${project.version},可以直接获取到pom.xml中的值
@Parameter( defaultValue = "${project.build.directory}", readonly = true )
private File target;//build之后生成的target目录
@Parameter( defaultValue = "${project.build.finalName}", readonly = true )
private String finalName;//build之后生成的文件名,注意没有.jar后缀
public void execute()
{
//主要的操作,这里可以获取到生成的jar文件,进行加密处理,和生成更新相关信息
}
操作的具体代码就不贴了,每个人需求不一样,自行发挥了,有兴趣的可以去我GitHub查看