zoukankan      html  css  js  c++  java
  • 自定义maven插件

    新建maven项目

    选择 org.apache.maven.archetypes:maven-archetype-mojo 为骨架创建项目

    @Mojo(name = "XXX",defaultPhase =  LifecyclePhase.PROCESS_RESOURCES,requiresDependencyResolution= ResolutionScope.COMPILE)
    public class SwaggerPlug extends AbstractMojo {
    @Parameter(defaultValue = "${project}", readonly = true, required = true)

    public MavenProject project;
    @Parameter(property = "envType")
    public String envType;
    public void execute() throws MojoExecutionException, MojoFailureException{
    try{
    ClassLoader projectLoader = getNewClassLoad(this.project);
    Class clz = projectLoader.loadClass(pkgName + "." + className);
    if(clz.isAnnotationPresent(org.springframework.web.bind.annotation.RestController.class){
    //do someThing

    }
    catch (Exception e){
    e.printStackTrace();
    logger.error("生成失败:{}",e);
    }
    }

    public ClassLoader getNewClassLoad(MavenProject project) throws DependencyResolutionRequiredException, MalformedURLException {
    List<String> cls = project.getCompileClasspathElements();
    cls.add( project.getBuild().getOutputDirectory());
    cls.add( project.getBuild().getTestOutputDirectory());
    URL[] runtimeUrls = new URL[cls.size()];
    for(int i=0;i<cls.size();i++){
    runtimeUrls[i] = new File(cls.get(i)).toURI().toURL();
    }
    URLClassLoader newLoader = new URLClassLoader(runtimeUrls,Thread.currentThread().getContextClassLoader());
    return newLoader;
    }

    }

    调试:插件新增remote:设置监听端口
    调用插件项目设置 Maven confige - runner:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8081
    paramters:command line:groupId:artifactId:version:name
     
    命令行调用插件:
    mvn groupId:artifactId:version:name -Dbranch="1.2.5" -DenvType="test" -DappName=""
     
     
  • 相关阅读:
    【知识强化】第六章 查找 6.4 散列(Hash)表
    【知识强化】第七章 排序 7.5 归并排序和基数排序
    【知识强化】第六章 查找 6.3 B树和B+树
    【知识强化】第五章 图 5.4 图的应用
    【知识强化】第五章 图 5.3 图的遍历
    linux的自启动服务脚本的(/etc/rc.d/init.d或者其链接/etc/init.d)
    shell文件包含
    shell输入输出重定向
    shell函数参数
    shell函数
  • 原文地址:https://www.cnblogs.com/chexiedaping/p/14283183.html
Copyright © 2011-2022 走看看