installDist上的Gradle copy文件夹

时间:2017-04-19 21:57:38

标签: gradle gradle-shadow-plugin

使用gradle 3.4,但相当新。

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

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

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

我的gradle文件没有任何特殊功能,除了依赖项。

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

编辑:

也必须使用影子插件。

1 个答案:

答案 0 :(得分:2)

要管理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界面以获取更多信息