任务:拷贝第三方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"
}}