Папка Gradle Copy в installDist

Использование Gradle 3.4, но довольно новый для него.

Если я запускаю gradlew installDist, файлы в src/main/java копируются в папку сборки, и все это работает отлично.

Но у меня также есть дополнительная папка в src/main/conf, которую я хотел бы скопировать в build/install/my-artifact/conf

Я не хочу помещать это в src/main/resources, потому что это будет включено во флягу. Я хотел бы оставить это внешним.

В моем файле Gradle нет ничего особенного, кроме зависимостей.

Так как же мне скопировать папки / файлы при запуске installDist?

РЕДАКТИРОВАТЬ:

Также должен работать с плагином тени.

1 ответ

Решение

Для управления содержимым рассылки вам необходимо изменить 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 для получения дополнительной информации

Другие вопросы по тегам