Gradle 复制 installDist 上的文件夹

Gradle copy folder on installDist

使用 gradle 3.4,但还很新。

如果我 运行 gradlew installDist 将 src/main/java 中的文件复制到构建文件夹,一切正常。

但我在 src/main/conf 中还有一个额外的文件夹,我想复制到 build/install/my-artifact/conf

我不想把它放在 src/main/resources 中,因为它会包含在罐子里。我想将其保留在外部。

我的 gradle 文件除了依赖项没有任何特殊之处。

那么当 installDist 运行s 时,我将如何复制 folders/files?

编辑:

也必须使用影子插件。

要管理 distribution contents,您需要修改 main 分配,如下所示:

apply plugin: 'distribution'

distributions {
    main {
        baseName = 'my-artifact'
        contents {
            from { 'src/main/java' }
            from('src/main') {
                include 'conf/**'
            }
        }
    }
}

这将:

  • 复制src/main/java下的文件
  • 复制目录conf及其下的文件

新结构如下:

build/install/my-artifact/
                   │
                   ├── com/
                   │   └── yourlib
                   │       └── ......
                   └── conf/
                       └── .....

您还可以在同一级别包含源目录:

build/install/my-artifact/
                   │
                   ├── java/
                   │    └── com/
                   │         └── yourlib
                   │               └── ......     
                   └── conf/
                        └── .....

具有以下内容:

apply plugin: 'distribution'

distributions {
    main {
        baseName = 'my-artifact'
        contents {
            from('src/main') {
                include 'java/**'
                include 'conf/**'
            }
        }
    }
}

查看CopySpec界面了解更多信息