我对Gradle完全陌生。首先,我尝试为简单的控制台Java应用程序创建一个构建脚本,而不使用Java插件。maven repository中的代码中只有两个依赖项。因此,我的构建包含一个任务,它扩展了JavaCompile,我在其中指定了类路径、目标等
我的项目不应用java插件,因此我需要自己创建依赖项配置,如下所示:
configurations {
myCompile {
desciprtion = 'my own compile dependency configuration'
transitive = true
}
}
然后我可以将依赖项绑定到此配置:
dependencies {
myCompile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.7'
myCompile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.7'
}
据我所知,在那之后我必须将那些配置与我的编译操作绑定,但我无法弄清楚如何。有人可以向我指出这一点吗?任何帮助都将非常感谢)
P. S.我已经阅读了这个在Gradle中,将任务与依赖配置相关联,并且提到了源代码集。所以,我可以创建源代码集myThing,并且将为我创建具有配置的任务?这在没有java插件的情况下可以工作吗?
P. S.我想在没有插件的情况下实现这个简单的任务只是为了学习Gradle,它是基本工具:)
首先使用exec任务类型创建编译任务,请参阅DSL refreence for exec。
创建编译任务时,您可以使用getAsPath()获取对配置的引用,请参阅FileCollection的API文档
configurations.myCompile.getAsPath()
但说真的,我建议您为此应用java插件。
如果你觉得需要一个快速的初学者课程,试试这个视频。
最后,我使用这段代码编译了没有java插件的项目:
task resolveCompileDependency(type: Copy) {
//download libraries specified in dependency configuration
def lib_files = configurations.myCompile.resolve()
//print names of downloaded files and copy to build directory (optional)
lib_files.each {File file ->
println file.name
}
from lib_files
into 'build/classes'
outputs.files(lib_files)
}
而编译任务只是普通的JavaCompile任务,它依赖于解析编译依赖。
希望这会对某人有所帮助。