一、使用技术
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>
完结!