build.gradle在build后增加一个任务

任务:拷贝第三方jar到lib,编译java文件打包为tests.jar,然后把tests.jar也拷贝到lib目录下。

第一个版本build.gradle是这么写的:

apply plugin: 'java'
def root = file('..')
copy { 
  from "${root}/3rdpartyinternal/commons_codec/1_6/commons-codec-1.6.jar"  
  from "${root}/3rdpartyinternal/commons_lang/3_3_2/commons-lang3-3.3.2.jar"  
  from "${root}/3rdpartyinternal/commons_logging/1_1_1/commons-logging-1.1.1.jar"  
  ...... 
  into "lib" }

dependencies {  compile fileTree('lib') }

sourceSets {
  main {
    java { srcDir 'src'  }
} }

jar {  archiveName = "tests.jar" }

copy {  from "build/libs/tests.jar"  into "lib" }

发现执行gradle build命令后只完成了打包,需要再执行一次gradle build才能把tests.jar拷贝到lib目录下。即,第一次执行完成了打包,第二次执行拷贝tests.jar,说明拷贝是在打包之前做的。

然后把最后一段改为下面这样,执行gradle copyTask就能完成打包然后拷贝。

task copyTask (dependsOn: 'build') {
  doLast{
    copy {
      from "build/libs/tests.jar"
      into "lib"
}}}

因为别的脚本调用这个任务是执行gradle build,为了避免改别处的脚本,进一步改了一下最后一段,改完后执行gradle build就能完成打包然后拷贝。

build << {
  copy {
    from "build/libs/tests.jar"
    into "lib"
 }}

原文地址:https://www.cnblogs.com/qdlk/p/4586619.html