Gradle проект только с настройкой и без источников - PullRequest
3 голосов
/ 26 марта 2012

Я бы хотел создать новый проект Gradle без каких-либо источников. Я собираюсь поместить туда некоторые файлы конфигурации, и я хочу сгенерировать zip-файл при сборке. С Maven я бы использовал плагин сборки. Я ищу самый простой и легкий способ сделать это с Gradle. Интересно, нужно ли мне применять плагин Java, даже если у меня нет источников здесь, просто потому, что он предоставляет некоторые основные и полезные задачи, такие как чистка, сборка и так далее. Создание почтового индекса довольно просто, я знаю, как это сделать, но я не знаю, где и как поместить поколение почтового индекса в мир gradle.

Ответы [ 3 ]

3 голосов
/ 26 марта 2012

Я делал это вручную до сих пор.Другими словами, для проектов, где все, что я хочу сделать, это создать какой-то дистрибутив, и мне нужны базовые задачи жизненного цикла, такие как сборка и очистка, я просто создал эти задачи вместе с необходимыми зависимостями.

Ноесть «базовый» плагин (упомянутый в разделе «Базовые плагины» «Стандартных плагинов Gradle» в руководстве пользователя), который, кажется, хорошо подходит для этой функции.Обратите внимание, что в руководстве пользователя упоминается, что этот и другие базовые плагины еще не считаются частью Gradle API и на самом деле не документированы.

Результаты в значительной степени идентичны вашим, с той лишь разницей, чтонет никаких запутанных специфических задач Java, которые всегда остаются в актуальном состоянии.

apply plugin: 'base'

task dist(type: Zip) {
    from('solr')
    into('solr')
}

assemble.dependsOn(dist)

Пример выполнения:

$ gradle clean assemble
:clean
:dist
:assemble

BUILD SUCCESSFUL

Total time: 2.562 secs
1 голос
/ 26 марта 2012

Вы можете просто использовать плагин Groovy и использовать муравей.Я сделал что-то вроде этого.Мне также нравится ответ Джаванны.

  task jars(dependsOn: ['dev_jars']) << {
    def fromDir = file('/database-files/non_dev').listFiles().sort()

    File dist = new File("${project.buildDir}/dist")
    dist.mkdir()

    fromDir.each { File dir ->
    File destFile = new File("${dist.absolutePath}" + "/" + "database-connection-" +     dir.name + ".jar")
    println destFile.getAbsolutePath()
    ant.jar(destfile:destFile, update:false, baseDir:dir)
  }
}
1 голос
/ 26 марта 2012

Насколько я понял, это может звучать странно, но, похоже, мне нужно применить плагин java для создания zip-файла.Кроме того, удобно иметь в наличии некоторые распространенные задачи, например, clean.Вот мой build.gradle:

apply plugin: 'java'

task('dist', type: Zip) {
    from('solr')
    into('solr')
}

assemble.dependsOn dist

Я применил плагин Java и определил мою задачу dist, которая создает zip-файл, содержащий каталог solr с содержимым каталога solr в моем проекте.Последняя строка удобна для выполнения задачи при запуске общего gradle build или gradle assemble, поскольку я не хочу явно вызывать задачу dist.Таким образом, если я работаю с несколькими проектами, мне просто нужно выполнить gradle build на родительском объекте, чтобы сгенерировать все артефакты, включая конфигурационный zip.

Пожалуйста, дайте мне знать, если у вас есть лучшие решения, и добавьте свой ответ!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...