【问题标题】:Gradle processResources corrupts .jksGradle processResources 损坏 .jks
【发布时间】:2016-05-02 17:46:13
【问题描述】:

我希望是一个简单的问题,但我没有找到答案。

我想让 build.gradle 文件通过替换某些变量来设置我的 Spring Boot 应用程序中的版本。这如宣传的那样工作:

def tokens = [
    "version": 'project.version.toString()',
    "projectName": project.name,
    "groupId": rootProject.group,
    "artifactId": project.name
]
processResources{
    filter (ReplaceTokens, tokens: tokens)
    outputs.upToDateWhen{ false }
}

然而,这段代码也替换了我也包含在我的资源中的 java 密钥库中的某些内容,这会破坏它。当我使用 ant 匹配器排除不是我要替换的文件的任何内容时,不会复制任何其他内容。即包括 '*.properties'

有没有办法只对某些文件进行令牌替换,同时仍复制资源目录中的其余文件?我是否需要为非属性文件定义单独的复制任务?

谢谢!

【问题讨论】:

  • 您找到解决方案了吗? @blur0224?
  • 我没有。我最终走向了不同的方向。

标签: gradle


【解决方案1】:

解决方案是在执行任务processReousrces 时跳过任何二进制文件。例如,我使用 expand() 将文本文件中的标记替换为 gradle 脚本中计算的值。所以,

  1. 跳过 jks 文件
  2. 将其移至二进制资源中

这是我可以跳过目录src/main/resources/certs/ 下的文件的方法。 doLast() 保证 jks 文件在使用完资源后被复制到适当的位置。

ext {
  commit = 'git rev-parse --short HEAD'.execute().text.trim()
  branch = 'git rev-parse --abbrev-ref --symbolic HEAD'.execute().text.trim()
}

/**
 * Processes the resources, excluding the certs while building.
 */
processResources {
  // Exclude the certs files to be processed as text
  exclude "**/certs/*"

  expand(
    timestamp: new Date(),
    commit: commit,
    branch: branch,
    version: project.version
  )

  // Copy the jks file to the resources (classpath)
  doLast {
    copy {
      from "src/main/resources/certs/server.jks"
      into "$buildDir/classes/main/certs"
    }
  }
}

【讨论】:

  • 谢谢,帮我节省了很多时间。对于那里的 maven 用户,您可能需要将 .jks 放入 sr/main/resources folder 并将 into "$buildDir/classes/main/certs" 更改为 into "$buildDir/resources/main"
【解决方案2】:
processResources {
    filesNotMatching("**/certs/*") {
       expand(
         timestamp: new Date(),
         commit: commit,
         branch: branch,
         version: project.version
       )
    }
}

我今天遇到了同样的问题,我在以下位置找到了这个解决方案:https://stackoverflow.com/a/36731250/2611959

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2017-12-04
    • 2016-02-15
    • 2017-11-22
    • 1970-01-01
    • 2018-12-10
    • 2017-09-07
    相关资源
    最近更新 更多