当前位置: 首页 > 知识库问答 >
问题:

gradle kotlin dsl:复制项目依赖项

袁何平
2023-03-14

我可以在一个多模块gradle项目中复制一个模块的所有依赖项,比如

tasks.register<Sync>("copyResources") {
    from(configurations.runtimeClasspath)
    into(layout.buildDirectory.dir("extraResources"))
}

但实际上,我只需要通过应用项目组id的过滤器来复制项目依赖项

tasks.register<Sync>("copyResources") {
    from(configurations.runtimeClasspath) {
        include {
            group "this.project.group"   // NOT WORKING.
        }
    }
    into(layout.buildDirectory.dir("extraResources"))
}

在Gradle中,使用Kotlin DSL的正确方法是什么?

共有1个答案

郭志
2023-03-14

下面的工作。但我觉得必须有一个更简单的解决办法。

解决方案使用正则表达式来过滤依赖项。如果依赖文件的绝对路径包含多模块项目根,则正则表达式匹配为true。

val copyImplemtations by configurations.creating {
    extendsFrom(configurations.implementation.get())
}

tasks.register<Sync>("copyResources") {
    val regex = Regex(".*[\\\\/]kotlin-spring-demo[\\\\/].*")
    from(copyImplemtations.filter { regex.matches(it.absolutePath) })
    into(layout.buildDirectory.dir("extraResources"))
}
 类似资料:
  • 我是maven的新手。(我已经搜索了几个小时的答案,但没有运气。mvn依赖:复制依赖不能解决我的问题)我需要复制项目的所有依赖项(以jar的形式),如果我的一个jar依赖于另一个工件,也复制该工件。 示例project1 pom。xml: “project1”依赖于project2。人工制品罐子当我使用“mvn依赖项:复制依赖项”时,我得到了project2。人工制品但我没有得到project3。

  • 我试图构建一个Maven父项目脚本,其中包含一个第三方项目(及其所有依赖项)和我的另外几个项目。 我想复制所有的依赖项(我的意思是所有的依赖项,包括由其他依赖项请求的jars,而这些依赖项又是由我的一个子项目请求的)到父项目目录,例如lib,这样我就可以用通配符类路径运行java: 我尝试了使用maven-依赖-插件的各种方法,如,但我能指向Maven的只是我自己的子项目,而不是它们的依赖项(我的

  • 我有一个Tycho构建,它为Xtext DSL功能生成eclipse插件。我现在想做一个maven插件,它可以处理DSL文件。问题是要将DSL插件所依赖的工件放入maven插件中,因为这些工件不在maven存储库中。此外,我希望maven插件自动依赖于DSL插件所依赖的相同工件。 我认为创建一个带有依赖项的 über-jar 将是最好的方法。问题是检索 DSL 插件的依赖项并将其复制到一个目录中,

  • 我正在使用maven eclipse插件来管理我的web应用程序项目的dependecies(eclipse WTP)。在更改依赖项时,我通常执行maven的copy-dependencies目标,将项目JAR复制到WebContent/WEB-INF/lib文件夹。当我更改pom文件中的依赖项时,是否有一种方法可以自动完成此操作?

  • 我已经在NetBeans8.1中创建了5个不同的Java SE项目。我想创建一个新的项目,该项目带有一个介绍窗口,该窗口带有链接/打开链接到该按钮的项目的按钮,并从该窗口创建一个软件。 我已经在主项目->Properties->Library->Compile->Add Project中添加了依赖项(其他项目的jar文件)。 当我在netbeans中运行它们时,运行窗口打开了,但是当我从主项目中调

  • 在之前提到的多项目配置中,:libraries:lib1 和 :libraries:lib2 可以是 Java 项目,并且 :app 这个 Android 项目将会使用它们输出的 jar 包。然而,如果你想这部分代码能够访问 Android APIs 或者使用 Android 的资源,那么这些 Library 项目就不能是 Java 项目,只能是 Android Library 项目。