Build 只有配置而没有源的Gradle项目

Build 只有配置而没有源的Gradle项目,build,gradle,Build,Gradle,我想创建一个没有任何来源的新Gradle项目。我将在那里放置一些配置文件,我想在构建时生成一个zip文件。 对于maven,我会使用汇编插件。我正在寻找最简单、最轻松的方法来处理Gradle。我想知道,即使我在这里没有任何源代码,我是否需要应用java插件,因为它提供了一些基本和有用的任务,如清理、组装等。生成zip非常简单,我知道怎么做,但我不知道如何在gradle世界中生成zip。据我所知,这听起来可能很奇怪,但看起来我需要应用java插件才能创建zip文件。此外,它还可以方便地提供一些常见

我想创建一个没有任何来源的新Gradle项目。我将在那里放置一些配置文件,我想在构建时生成一个zip文件。
对于maven,我会使用汇编插件。我正在寻找最简单、最轻松的方法来处理Gradle。我想知道,即使我在这里没有任何源代码,我是否需要应用java插件,因为它提供了一些基本和有用的任务,如清理、组装等。生成zip非常简单,我知道怎么做,但我不知道如何在gradle世界中生成zip。

据我所知,这听起来可能很奇怪,但看起来我需要应用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 assembly
时,最后一行便于执行任务,因为我不想显式调用
dist
任务。 这样,如果我处理多个项目,我只需要在父项目上执行
gradlebuild
,以生成所有工件,包括配置zip


请让我知道,如果你有更好的解决方案,并添加您自己的答案

您可以使用groovy插件和ant。我做了这样的事。我也很喜欢贾瓦纳的回答

  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)
  }
}
任务jar(依赖项:['dev\u jars']
File destFile=新文件(${dist.absolutePath}“+”/“+”数据库连接-“+dir.name+”.jar”)
println destFile.getAbsolutePath()
jar(destfile:destfile,update:false,baseDir:dir)
}
}

到目前为止,我都是手动完成的。换句话说,对于那些我只想创建某种发行版并且需要基本生命周期任务(如组装和清理)的项目,我只是创建了这些任务以及所需的依赖项

但是有一个“基本”插件(在《用户指南》的“标准Gradle插件”的“基本插件”中提到)似乎很适合这个功能。请注意,尽管《用户指南》提到此插件和其他基本插件尚未被视为GradleAPI的一部分,也没有真正的文档化

结果与您的结果几乎相同,唯一的区别是没有令人困惑的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.如果你喜欢我自己的答案,你可以投票我更喜欢我的,因为它比较短,如果我使用Gradle,我不喜欢使用Ant,但可能是我。好的!我只是一个新手,我不知道有基础插件。谢谢!