美文网首页
gradle 指定开发和生产的依赖版本

gradle 指定开发和生产的依赖版本

作者: Yellowtail | 来源:发表于2018-10-06 16:24 被阅读0次

    需求

    因为我们的工程,打包给开发环境和生产环境的依赖是不一样的,一个是快照,一个是release

    思考

    第一个想法是定义不同的task,指定不同的变量,然后编译的时候依赖之
    而且想默认的情况下选择dev配置,但是试了好久无果,最后选择了下面的解决办法
    如果哪位大佬知道如何更优雅的解决这个问题,还请在评论里告知一下

    solution

    首先在build.gradle里定义两个Execution阶段的task,确保他们不会自动运行
    (如果没有<<,那么这些任务就是属于Configuration阶段的,会自动运行的)

    task selectProdVersion << {
        println "select version for prod"
        
        project.ext {
            ms_common_version = "com.fanggeek.ms:common:1.0"
        }
    }
    
    task selectDevVersion << {
        println "select version for dev"
        
        project.ext {
            ms_common_version = "com.fanggeek.ms:common:1.0-SNAPSHOT"
        }
    }
    

    然后再定义一个Configuration阶段的task
    通过判断命令行是否输入参数envType来决定执行哪个task,从而来设置不同的依赖

    task setVersion() {
        if(project.hasProperty('envType')) {
            selectProdVersion.execute()
        } else {
            selectDevVersion.execute()
        }
    }
    

    编译打包的时候,
    如果是开发环境

    gradle build
    

    如果是生产环境

    gradle build -PenvType
    

    相关文章

      网友评论

          本文标题:gradle 指定开发和生产的依赖版本

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