我可以通过groovy更简单(更短)地实现此代码吗?

task uninstall(type: Delete) {
    def dirToDelete = System.properties['....'] + File.separator + ... + "..."

    def paths = project.group.toString().split("\\.")

    for (def p : paths)
        dirToDelete = dirToDelete + File.separator + p

    dirToDelete = dirToDelete + ...
    somethingDid(dirToDelete)
}

最佳答案

您可以通过将所有路径元素收集到列表中并将它们加入分隔符中来删除重复的File.separator:

task uninstall(type: Delete) {
    def paths = [System.properties['....'], "..."]

    paths << project.group.split(/\./)

    paths << ...
    somethingDid paths.flatten().join(File.separator)
}

注释:

分割toString()时不需要
  • project.group,因为它已经是一个字符串
  • split("\\.")可以用斜杠字符串替换,因此反斜杠不需要转义:split(/\./)
  • 关于gradle - 我可以通过groovy更简单(更短)地实现此代码吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38977586/

    10-09 05:07