快速生成jboot/jfinal代碼maven插件最佳配置

 

插件基本使用參考:http://www.javashuo.com/article/p-bpbvqzag-eq.htmlmysql

但有時候想經過命令行運行時覆蓋默認的配置參數,若是是配置硬編碼是不能覆蓋的,仍是會使用pom.xml中配置的參數,舉個栗子:sql

<plugin>
    <groupId>io.jcode</groupId>
    <artifactId>codegen</artifactId>
    <version>1.0-SNAPSHOT</version>
    <configuration>
        <dbType>mysql</dbType>
        <dbUrl>jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&amp;characterEncoding=utf-8</dbUrl>
        <dbUser>root</dbUser>
        <dbPassword>123456</dbPassword>
        <tablePrefix>test_</tablePrefix>
    </configuration>
</plugin>

想在運行時設置tablePrefix參數爲user_,因而maven

mvn codegen:generate -DcodeType=MODEL -DtablePrefix=user_

可是運行發現最終生效的仍是pom中的test_ui

那這怎麼才能經過命令行覆蓋呢?有木有辦法?編碼

答案是確定的,看下面配置spa

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <tablePrefix>demo_</tablePrefix>
    <dbPassword>123456</dbPassword>
</properties>
....
<build>
    <finalName>${artifactId}-${version}</finalName>
    <plugins>
        <plugin>
            <groupId>io.jcode</groupId>
            <artifactId>codegen</artifactId>
            <version>1.0-SNAPSHOT</version>
            <configuration>
                <dbType>mysql</dbType>
                <dbUrl>jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&amp;characterEncoding=utf-8</dbUrl>
                <dbUser>root</dbUser>
                <dbPassword>${dbPassword}</dbPassword>
                <tablePrefix>${tablePrefix}</tablePrefix>
            </configuration>
        </plugin>
    </plugins>
</build>

再運行下命令就發現生效了.net

mvn codegen:generate -DcodeType=MODEL -DtablePrefix=user_

jcode maven plugin 的其餘參數若是須要覆蓋的以一樣的方式配置,這樣在運行時就能夠很靈活很方便了。插件

注意:-DXXX的名稱是properties配置對應的標籤名稱哦~,不是plugin的參數名稱。命令行

最後總結下maven參數的傳遞優先級:code

mvn codegen:generate -DXXX=123

一、若是參數XXX不存在於pom.xml中,則XXX的值會以命令行設置的值寫入,命令參數值行傳遞有效;

二、若是參數XXX存在於pom.xml中且是硬編碼的形式配置的,其XXX的值將以pom中配置的寫入,命令行參數值傳遞無效;

三、若是參數XXX存在於pom.xml中且是經過properties的形式${XXX}配置的,其XXX的值會以命令行設置的寫入,命令行參數值傳遞有效。

相關文章
相關標籤/搜索