我有一个使用Maven的小型多项目构建,我想将其转换为Gradle . 我有几个问题需要解决,但我会用一个单独的帖子来介绍每个问题 .

该应用程序有三个子项目,一个REST服务,一个前端GUI和一个Docker镜像构建 . 我们称之为“restservice”,“gui”和“image” .

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

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

因此,为了做到这一点,在“图像”项目中,我需要从Copy派生的任务将我的项目依赖项复制到文件夹 . 您可以在网上找到此任务的许多变体,但它们都会复制所有依赖项,包括传递依赖项,并将它们与文件名中的版本号一起复制 .

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