2013-05-13 2 views
2

Мне нужно создать банку, которая включает в себя зависимости (банку FAT) с помощью Gradle.Создайте FAT только для источника, используя Gradle

Улов: в банке должны быть включены только прямые файлы .groovy ... нет .class файлов.

Я видел, как это сделать из Gradle поваренной книги: http://docs.codehaus.org/display/GRADLE/Cookbook#Cookbook-Creatingafatjar

и One-Jar плагин: https://github.com/rholder/gradle-one-jar

но оба способа связан с использованием скомпилированных файлов .class вместо фактического файлы источника .groovy. Кроме того, мне не нужна эта банка, чтобы ее можно было запустить. Мне просто нужно иметь возможность ссылаться на мои .groovy-скрипты и иметь зависимости уже там для них.

Возможно ли это?

ответ

2

Я не уверен, что вам даже нужен файл .jar, или будет достаточно .zip, так как было бы путать распространение источника в .jar. Но независимо от того, что вам нужно, задача Zip является то, что вы хотите:

task('fatJar', type: Zip) { 
    extension = 'jar' // overriding default value: 'zip' 
    classifier = 'fat' // alternatively you can set basename or appending 

    from(sourceSets.main.allGroovy) // will fail if the groovy plugin isn't applied 
    from(configurations.runtime) // this includes all your jars needed on runtime 
} 

Сейчас это очень простой пример, который создаст файл с именем [Projectname] - [версия] -fat.jar в сборки/распределения/со всеми вашими баночками в корне zip и массивными исходными файлами рядом с ними. Вы можете посмотреть документацию для Gradle Zip task для получения дополнительных опций.

Смежные вопросы