美文网首页
3. maven插件

3. maven插件

作者: ifeelok0319 | 来源:发表于2017-07-10 13:32 被阅读21次

转载

简介

Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,像编译是通过maven-compile-plugin实现的、测试是通过maven-surefire-plugin实现的,maven也内置了很多插件,所以我们在项目进行编译、测试、打包的过程是没有感觉到。

进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven-compiler-plugincompile目标用来编译位于src/main/Java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码。

maven插件列表地址

执行语法

mvn [plugin-name]:[goal-name]
例如,一个Java项目使用了编译器插件,通过运行以下命令编译
mvn compiler:compile

插件类型

Maven提供以下两种类型的插件:

  • 构建插件
    在生成过程中执行,并应在pom.xml中的<build/>元素进行配置
  • 报告插件
    在网站生成期间执行的,应该在pom.xml中的<reporting/>元素进行配置。

插件示例

除了核心插件之外,还有很多优秀的第三方插件,可以帮助我们快捷、方便的构架项目。当使用到某些功能或者特性的时候多加搜索,往往得到让你惊喜的效果。
例如,项目中使用了Mybatis,就有一款神奇的maven插件,运行一个命令,就可以根据数据库的表,自动生成Mybatis的mapper配置文件以及DAO层接口模板。

pom.xml

<plugin>
   <groupId>org.mybatis.generator</groupId>
   <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.2</version>
    <configuration>
       <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
        <verbose>true</verbose>
        <overwrite>true</overwrite>
    </configuration>
    <executions>
        <execution>
           <id>Generate MyBatis Artifacts</id>
            <goals>
               <goal>generate</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
           <groupId>org.mybatis.generator</groupId>
           <artifactId>mybatis-generator-core</artifactId>
           <version>1.3.2</version>
        </dependency>
    </dependencies>
</plugin>

定义generatorConfig.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatisGenerator Configuration 1.0//EN"  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 
<generatorConfiguration>
    <classPathEntry  location="/Users/winner/mysql/mysql-connector-java-5.1.36.jar"/>
 
    <context id="DB2Tables" targetRuntime="MyBatis3">
 
        <!-- 去掉自动生成的注解 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
 
        < jdbcConnection driverClass="com.mysql.jdbc.Driver"  connectionURL="jdbc:mysql://localhost:3344/db?characterEncoding=utf8" userId="id" password="password">
        </jdbcConnection>
 
 
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
 
        <!-- 生成映射类-->
        <javaModelGeneratortarget Package="com.clf.model"  targetProject="/Users/winner/Documents/workspace/project/src/main/java/">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
 
        <!-- 生成xml文件-->
        <sqlMapGeneratortarget Package="com.clf.mapper" targetProject="/Users/winner/Documents/workspace/project/src/main/resources/">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </sqlMapGenerator>
 
        <!-- 生成mapperinterface-->
        <javaClientGenerator type="XMLMAPPER"  targetPackage="com.clf.mapper"  targetProject="/Users/winner/Documents/workspace/project/src/main/java/">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaClientGenerator>
      
             <table tableName="table_name" domainObjectName="object_name"
              enableCountByExample="false" enableUpdateByExample="false"
              enableDeleteByExample="false" enableSelectByExample="false"
              selectByExampleQueryId="false"/>
    </context>
</generatorConfiguration>

然后定位到pom.xml所在的路径下面,运行:
mvn mybatis-generator:generate

相关文章

网友评论

      本文标题:3. maven插件

      本文链接:https://www.haomeiwen.com/subject/sliyhxtx.html