2

使用 gradle 3.4 但对它来说相当新。

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

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

我不想把它放在 src/main/resources 中,因为它会包含在 jar 中。我想把它放在外部。

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

那么当 installDist 运行时,我将如何去复制文件夹/文件呢?

编辑:

也必须使用影子插件。

4

1 回答 1

4

要管理分发内容,您需要修改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界面以获取更多信息

于 2017-04-20T02:07:09.843 回答