我在Gradle(主要是Java)中有多个项目设置,有很多内部和外部依赖项。其中一个项目使用Main类生成jar,我想在构建之外执行特殊类型的测试(它不打算在生产中部署)。我不需要在任何地方上传它,只要我在构建运行的同一台机器上得到我需要的东西就足够了。
我可以创建使用这个项目的类及其所有依赖项创建uber-jar的任务,以获得那些测试的自执行jar。这种方法的问题是创建这样一个jar需要10-15分钟,而且我不希望每次在某处更改单行代码时都这样做。
是否存在某种分发/组装任务,在构建完所有内容后,将生成的jar和依赖jar复制到我指定的某个文件夹中?而且,当我再次运行build时,它将只复制那些自上次构建以来实际发生过变化的jar?
答案 0 :(得分:0)
嗯,看起来我只是使用Application plugin中的installApp任务实现了我的目标:
apply plugin:'application'
mainClassName = 'org.openjdk.jmh.Main'
installApp {
into 'D:\\Some\\directory'
}
它不会为每个jar执行同步,而只是检查整个目录。然而,因为它没有包装,但只是复制我需要从一个地方到另一个地方的罐子,它非常快。恶!
我只希望这个插件及其任务有更多文档,以防我想稍微自定义它。