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

 

插件基本使用参考:https://my.oschina.net/u/565351/blog/2866253

但有时候想通过命令行运行时覆盖默认的配置参数,如果是配置硬编码是不能覆盖的,还是会使用pom.xml中配置的参数,举个栗子:

<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_,于是

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

但是运行发现最终生效的还是pom中的test_

那这怎么才能通过命令行覆盖呢?有木有办法?

答案是肯定的,看下面配置

<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>

再运行下命令就发现生效了

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

jcode maven plugin 的其他参数如果需要覆盖的以同样的方式配置,这样在运行时就可以很灵活很方便了。

注意:-DXXX的名称是properties配置对应的标签名称哦~,不是plugin的参数名称。

最后总结下maven参数的传递优先级:

mvn codegen:generate -DXXX=123

1、如果参数XXX不存在于pom.xml中,则XXX的值会以命令行设置的值写入,命令参数值行传递有效;

2、如果参数XXX存在于pom.xml中且是硬编码的形式配置的,其XXX的值将以pom中配置的写入,命令行参数值传递无效;

3、如果参数XXX存在于pom.xml中且是通过properties的形式${XXX}配置的,其XXX的值会以命令行设置的写入,命令行参数值传递有效。

转载于:https://my.oschina.net/u/565351/blog/2873435

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值