美文网首页Gradle中文用户组开发工具之Gradle
[Gradle中文教程系列]-跟我学Gradle-7.3:打包-

[Gradle中文教程系列]-跟我学Gradle-7.3:打包-

作者: PKAQ | 来源:发表于2017-01-04 15:45 被阅读271次

    通过一种奇葩的快捷方式给web工程打不同环境包

    通常而言,开发环境和生产环境参数有着较大的差异,在上古时代,猿们通过打包时或者开发时手工修改配置文件的方式来区分生产环境和开发环境。显然这种方式是比较低效且lowbee的。那么,我们可以将不同环境的配置文件各建一份,通过Gradle来进行不同环境的打包。比如如下几种方式

    • 根据不同环境的参数建立不同的环境文件,打包时只打包相应的环境文件
    • 把环境参数配置到x.properties文件中,打包时从文件中读取相应参数动态修改配置文件

    下面的姿势是选取的第一种,在src/main/resources按不同环境建立相应的folder,打包时将不需要环境文件排除掉。当然我这里只是一个示例,实际情况可以自行修改代码实现,比如如果不想保留环境目录直接把环境文件打包到src/main/resources,则直接把环境目录追加到srcDir下即可

    执行下面的命令打相关环境的包

    gradle -q -Penv=pro
    

    可以修改gradle.properties中的env默认值

    gradle.properties

    env=dev
    

    这种方式是直接将环境包目录下的文件打包到resources根目录下的方式
    build.gradle

    apply plugin: 'java'
    
    
    sourceSets {    
        main {
            resources {
                srcDir "src/main/resources/${env}"
                
                sourceSets.main.resources.srcDirs.each   {      
                    it.listFiles().each {
                         if(it.isDirectory()) {        
                            exclude "${it.name}"
                        }
                    }                   
                }
            }
        }
    }
    

    ------------------ ------------------ wei suo fen ge xian ------------------ ------------------

    下面这种是保留环境包目录的方式
    build.gradle

    apply plugin: 'java'
    
    sourceSets {    
        main {
            resources {
                sourceSets.main.resources.srcDirs.each   {      
                    it.listFiles().each {
                         if(it.isDirectory() && it.name != "${env}") {
                            println "exclude ${it.name}"       
                            exclude "${it.name}"
                        }
                    }                   
                }
            }
        }
    }
    

    下一篇:利用ConfigSlurper进行不同环境构建

    相关文章

      网友评论

      • ink_cd86:it.listFiles() 是什么意思, sourceSets.main.resources.srcDirs.each这种用法是怎么来的呢,为什么有这么多属性、方法,天哪gradle真的更好吗,没搞过开发学这个真是一头雾水啊,怎么感觉ant maven更容易一些呢,大师请给予指导啊,我应该怎么学这个复杂的工具。。。。。哎。。。。痛苦

      本文标题:[Gradle中文教程系列]-跟我学Gradle-7.3:打包-

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