摇篮,复制和重命名文件

gun*_*goo 2 gradle build.gradle

我试图在gradle脚本中,为spring app创建bootJar之后,将创建的jar复制并重命名为新名称(将在Dockerfile中使用)。我缺少如何重命名文件(我不想在输出文件的docker版本中使用该版本)。

bootJar {
    baseName = 'kcentral-app'
    version =  version
}


task buildForDocker(type: Copy){
  from bootJar
  into 'build/libs/docker'
}
Run Code Online (Sandbox Code Playgroud)

jom*_*odo 6

你也可以这样做:

task copyLogConfDebug(type: Copy){
    group = 'local'
    description = 'copy logging conf at level debug to WEB-INF/classes'
    from "www/WEB-INF/conf/log4j2.debug.xml"
    into "www/WEB-INF/classes/"
    rename ('log4j2.debug.xml','log4j2.xml')
Run Code Online (Sandbox Code Playgroud)


M.R*_*uti 5

您可以使用扩展名的archiveName属性直接使用您的期望名称生成jar,而不是在生成之后重命名它 bootJar

bootJar {
   archiveName "kcentral-app.jar" // <- this overrides the generated jar filename
   baseName = 'kcentral-app'
   version =  version
}
Run Code Online (Sandbox Code Playgroud)

编辑 如果您需要保留原始jar文件名(包含版本),则可以buildForDocker如下更新任务定义:

task buildForDocker(type: Copy){
    from bootJar
    into 'build/libs/docker'
    rename { String fileName ->
        // a simple way is to remove the "-$version" from the jar filename
        // but you can customize the filename replacement rule as you wish.
        fileName.replace("-$project.version", "")
    }
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参见Gradle Copy Task DSL。