Java代码生成器-maven插件制作

一、使用技术

1、freemarker(2.3.23):作为页面静态代工具;

2、dom4j(2.1.1):作为xml文件解析工具。

二、freemarker介绍

三、dom4j介绍

四、maven插件的制作

1、Maven 插件的命名规范

我们会将自己的插件命名为 -maven-plugin,而不推荐使用 maven-plugin-,因为后者是 Maven 团队维护官方插件的保留命名方式。

2、什么是 Mojo?

Mojo 就是 Maven plain Old Java Object。每一个 Mojo 就是 Maven 中的一个执行目标(executable goal),而插件则是对单个或多个相关的 Mojo 做统一分发。一个 Mojo 包含一个简单的 Java 类。插件中多个类似 Mojo 的通用之处可以使用抽象父类来封装。

3、创建Mojo工程?

  • 创建项目:

    使用 Idea 作为开发工具,创建工程选择 Maven,然后在模板(骨架)中找到 maven-archetype-mojo,即可创建一个简单的 Mojo 工程。

  • 打包方式:

    <packaging>maven-plugin</packaging>
  • 引入依赖:

    <!--生成插件-->
    <!--这个依赖里面会包含一些 Mojo 的接口与抽象类-->
    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>2.0</version>
    </dependency>
    <!--注解扫描-->
    <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-annotations</artifactId>
        <version>3.1</version>
    </dependency>
  • 创建Mojo类:

    继承了AbstractMojo 这个抽象类,并实现了 execute() 方法,该方法就是用来定义这个 Mojo 具体操作内容,我们只需要根据自己的需要来编写自己的实现即可。

    Mojo 的查找机制了,在处理源码的时候,plugin-tools 会把使用了 @Mojo 注解或 Javadoc 里包含 @goal 注释的类来当作一个 Mojo 类。

    /**
     * 使用freemarker生成java文件
     */
    @Mojo(name = "generate")
    public class GenerateCode extends AbstractMojo {
    ​
        /**
         * xml数据目录
         */
        @Parameter
        private String xmlPath;
        
        /**
         * 代码输出目录
         */
        @Parameter
        private String outPath;
    ​
        @Override
        public void execute() {
            ......
        }
  • 插件项目install,安装在本地仓库中。

  • 在使用插件的项目的pom文件中添加插件:

    <build>
        <plugins>
            <plugin>
                <groupId>com.orientsec.spx</groupId>
                <artifactId>generate-code</artifactId>
                <version>1.0-SNAPSHOT</version>
                <configuration>
                    //输出代码目录
                    <outPath>${project.build.directory}</outPath>
                    //数据源目录
                    <xmlPath>${project.basedir}\\src\\main\\resources\\xml</xmlPath>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

完结!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值