广州网站公司推荐,wordpress 滑动主题,wordpress 高亮代码,企业网站建设一般考虑哪些因素?背景在BAE基础版和专业版上#xff0c;java应用通过war包文件部署的时候#xff0c;总会遇到一些小麻烦#xff1a;BAE专业版的svn/git有单文件40M的限制#xff0c;所以在专业版的svn/git中上传超过40M的war包(很多war包都会超过40M)是不可行的BAE基础版的svn/git#xf…背景在BAE基础版和专业版上java应用通过war包文件部署的时候总会遇到一些小麻烦BAE专业版的svn/git有单文件40M的限制所以在专业版的svn/git中上传超过40M的war包(很多war包都会超过40M)是不可行的BAE基础版的svn/git以及BAE专业版的打包上传虽然没有单文件大小限制(BAE基础版的svn/git有所有文件加起来不能超过100M的限制)但是每次有任何改动都需要上传整个war包导致每次上传耗时很长解决的办法很简单将war包中的文件解压到BAE专业版或基础版的svn/git中的ROOT目录下(tomcat为ROOT目录jetty为root目录)再上传。这样既能避免了BAE专业版svn/git单文件40M的限制(war包中解压出来的文件一般不超过40M)也能避免每次都要上传整个war包的问题(只需要上传war包中有变化的文件像依赖的jar包文件一般都是不会发生变化的)。本文主要介绍如何通过构建工具gradle实现打war包、解压war包、上传svn的自动化流程。注本文并不包含gradle的使用教程如果你并不熟悉gradle建议阅读以下gradle入门系列文章方案要实现打war包、解压war包、上传svn的自动化流程只需要在gradle的构建脚本build.gradle中增加一段脚本并执行gradle publish命令即可。首先在build.gradle中增加以下内容// 使用war插件打war包apply plugin: war// svnUrl为BAE基础版或专业版的svn地址可在控制台复制获得def svnUrl https://svn.bce.baidu.com/.../task updateSvn {if (file(svn).exists()) {exec {workingDir svncommandLine svn, update}} else {exec {commandLine svn, checkout, svnUrl, svn}}}task cleanSvn(dependsOn: [updateSvn]) {file(svn).listFiles().findAll { it.name ! .svn }.each {delete it}}task unzipWar(type: Copy, dependsOn: [cleanSvn, war]) {into svn/ROOTfrom zipTree(tasks.war.archivePath)}task publish(dependsOn: unzipWar) {def stdout new ByteArrayOutputStream()exec {workingDir svncommandLine svn, statusstandardOutput stdout}def status stdout.toString().readLines()status.each {def filename it[it.indexOf( )..-1].trim()if (it.startsWith(?)) {exec {workingDir svncommandLine svn, add, filename}} else if (it.startsWith(!)) {exec {workingDir svncommandLine svn, rm, filename}}}exec {workingDir svncommandLine svn, commit, -m, System.getProperty(message)}}需要上传时只需要在命令行中执行以下指令(其中“{svn-ci-message}”为svn的commit信息)$ gradle publish –Dmessage”{svn-ci-message}”工作原理我们通过下图来看看上面的构建脚本是如何执行的updateSvn如果项目目录下没有svn目录则通过svn checkout命令将BAE的svn库中的内容下载下来如果有svn目录则通过svn update命令将该目录中的文件更新到最新版本cleanSvn将svn目录中除了.svn(存放svn的元数据)外的文件和目录都删除掉。这一步是为了保证war包中已删除的文件在svn中也能被删除war由gradle提供的打war包的命令unzipWar将步骤3打出的war包解压到svn/ROOT目录下publish这个步骤又分为3步通过svn status目录列出svn目录下的文件变化对于新增的文件调用svn add命令对于已删除的文件调用svn rm命令调用svn commit命令将变化的部分上传到svn总结本文介绍了通过解压war包并上传到svn/git的办法避免了BAE专业版svn/git单文件40M的限制以及每次都要上传整个war包的问题。本文还提供了一个gradle的构建脚本上传代码时只需要执行gradle publish命令就能实现打war包、解压war包、上传svn的自动化流程。来源