gradle打包

1.自定义打包

bootJar {
    File dir = file("build/")
    if (dir.isDirectory()) {
        dir.eachFileRecurse { file ->
            def name = file.getName()
            if(file.isFile() && name.startsWith('version')) {
                file.delete()
            }
        }
    }

    String fileName = "build/version.info"
    doFirst {
        File out = file(fileName)
        out.withWriter('UTF-8'){ writer ->
            writer.write("提交记录: " + "\r\n" + 'git log --oneline -5'.execute().text.trim() + "\r\n\r\n")
            writer.write("打包分支: " + 'git rev-parse --abbrev-ref HEAD'.execute().text.trim() + "\r\n")
            writer.write("当前用户: " + 'git config user.email'.execute().text.trim() + "\r\n")
            writer.write("打包时间: " + new Date().format('yyyy-MM-dd HH:mm:ss') + "\r\n")
        }
    }
    from ("build/version.info") {into '/'}

}

有时可能是多模块构建的项目,上面的task可能会无法打印git信息,需要加上当前的项目目录,(好像是无法识别git目录)

bootJar { // 设置bootJar的扩展加载功能
	File dir = file("build/")
	if (dir.isDirectory()) {
		dir.eachFileRecurse { file ->
			def name = file.getName()
			if(file.isFile() && name.startsWith('version')) {
        		file.delete()
        	}
    	}
	}
	def currentDirectory = project.projectDir
	String fileName = "build/version" +".txt"
	def gitBranch = 'git -C '+project.projectDir+' rev-parse --abbrev-ref HEAD'
	def gitUser = 'git -C '+project.projectDir+' config user.email'
	def gitLogCommand = ["git", "-C", project.projectDir.toString(), "log", "--oneline", "-5"]
	
	def logs=""
        try {
            Process process = new ProcessBuilder(gitLogCommand)
                    .directory(currentDirectory)
                    .redirectErrorStream(true)
                    .start()
            InputStream inputStream = process.inputStream
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, 'UTF-8'))
            reader.eachLine { line ->
                logs=logs+line+'\n'
            }
            reader.close()
            process.waitFor()
        } catch (IOException | InterruptedException e) {
            throw new GradleException("Error executing Git command: ${e.message}", e)
        }
	doFirst {
		File out = file(fileName)
	    out.withWriter('UTF-8'){ writer ->
	    	writer.write("java版本信息:" + System.getProperty("java.version") + "\r\n")
	    	writer.write("系统版本信息:" + System.getProperty("os.name") + "\r\n")
	    	writer.write("提交记录: " + "\r\n" + logs+ "\r\n\r\n")
            writer.write("打包分支: " + gitBranch.execute().text.trim() + "\r\n")
            writer.write("当前用户: " + gitUser.execute().text.trim() + "\r\n")
	    	writer.write("打包时间:" + new Date().format('yyyy-MM-dd HH:mm:ss') + "\r\n")
	    }
	}
}

2.打源码包

task packSrc(type: Zip) {
	group 'build'
	description "Package src."
	archiveName "src.zip"
	from sourceSets.main.allSource
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值