Gradle修改文件内容、重命名

使用Gradle打包时,需要将手写的服务启动脚本放到压缩包中,本来只需要简单的代码就可以了。

applicationDistribution.from('src/script/runServer.sh'){
    into "bin"
}

 但是实际项目中,项目名可配,版本可配。服务器上的部署的目录就带有项目名和版本信息,比如实际项目目录是/data0/projName-1.2.3/。为了让脚本能正常使用,我的构想是维护一个脚本模板,模板中使用两个变量来表示项目名和版本信息,然后在打包时,根据Gradle配置文件中的项目名和版本信息,来替换脚本模板中的变量,生成脚本文件。最后将生成的脚本文件打到包中。

这就切题了--使用Gradle修改文件内容并重命名。

我的实现如下

 

#!/bin/bash

projName="@gradleProjName@"
projVersion="@gradleVersion@"
projFolder=${projName}-${projVersion}

 runServer.model

 

 

applicationName='projName'
app_version='1.2.3'

import org.apache.tools.ant.filters.ReplaceTokens
task genShell(type: Copy) {
    from 'src/script/'
    include 'runServer.model'
    into 'src/script/'
    rename ('runServer.model','runServer.sh')
    filter (ReplaceTokens, tokens: [
            gradleProjName: applicationName,
            gradleVersion: app_version
    ])
}

 build.gradle


 

注:使用Gradle版本2.14.1

 

你可能感兴趣的:(Gradle)