如何将gradle复制所有非传递依赖项,剥离版本号?

我有一个使用Maven的小型多项目构build,我想要转换为Gradle。 我有几个问题需要解决,但是我会用一个单独的post来介绍每个问题。

该应用程序有三个子项目,一个REST服务,一个前端GUI和一个Docker镜像构build。 我们将这些叫做“restservice”,“gui”和“image”。

“图像”项目依赖于“restservice”和“gui”,因为它将来自这些项目的两个WAR合并到图像中。 它还依赖于提供JDBC驱动程序的工件(这不包含在“restservice”WAR中)。

为了使“image”项目中的Gradle Docker插件能够工作,我必须有一个本地文件夹,其中包含“restservice”和“gui”项目的两个WAR文件,以及JDBC jar,但版本号从文件名剥离。 Dockerfile引用的工件没有版本号。

所以,为了做到这一点,在“图像”项目中,我需要一个从副本派生的任务来将我的项目依赖项复制到一个文件夹中。 你可以在网上find这个任务的许多变体,但是它们都复制所有的依赖关系,包括传递依赖关系,并且用文件名中的版本号复制它们。

那么,我该如何定义一个Gradle任务,它只复制非传递的依赖关系(两个WAR和JDBC jar),并从文件名中去除版本号?