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

Gradle:从Java向本机编译添加依赖性

慕容兴贤
2023-03-14
model {
    components {
        yli(NativeLibrarySpec) {
            sources {
                c {
                    source {
                        srcDir 'src/main/c'
                        include "Yli.c"
                        commonFolders.each {
                            include "$it/**/*.c"
                        }
                    }
                }
            }
            buildTypes {
                release
            }
        }
    }
}
compileJava.dependsOn(yliSharedLibrary)

我在gradle构建过程中出现以下错误:

* What went wrong:
A problem occurred evaluating root project 'yli'.
> Could not get unknown property 'sharedLibrary' for root project 'yli' of type org.gradle.api.Project.

注意:我使用命令'gradle tasks'来找到任务的名称:'YLI SharedLibrary'。

共有1个答案

鲁鹏
2023-03-14

我对此进行了尝试,发现您可以在闭包中访问由软件模型创建的任务。例如,如果您希望依赖于一个本机任务,可以使用:

compileJava.dependsOn { yliNativeCompileTask }

当然,如果您希望Java任务位于本机任务之后,但又不强制它们之间存在实际的依赖关系,则可以使用mustrunafter():

compileJava.mustRunAfter { yliNativeCompileTask }

此语法也适用于声明的输入和输出:

compileJava.inputs.files { yliNativeCompileTask }

请注意,如果将一个任务的输入与另一个任务的输出绑定在一起,则不必显式声明dependson。Gradle推断出任务依赖关系。

免责声明我不知道这是否是正确的方法,或者你可以采取这种方法多远。

最后一件事:旧的原生软件模型正在被一组基于Gradle原始模型的新的原生插件所取代。将Java项目与这些新插件集成起来应该容易得多,但是您可能希望等到插件完全充实之后再尝试迁移。

 类似资料:
  • 显然,出于某种原因,Gradle 似乎认为我的“Spring数据”依赖于 slf4j。这是 gradle 打印出来的依赖关系图 尽管spring data commons实际上并不依赖于slf4j:http://mvnrepository.com/artifact/org.springframework.data/spring-data-commons/1.5.1.RELEASE 为什么gradl

  • 我正在使用mongodb和Spring Boot。最近,我的mongodb升级到了3.0版本。 我对Spring使用以下Gradle依赖项: 如果我查看maven存储库中的gradle:,我会看到以下内容(http://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb/1.2.6

  • 本文向大家介绍gradle 添加依赖,包括了gradle 添加依赖的使用技巧和注意事项,需要的朋友参考一下 示例 Gradle中的依赖项遵循与Maven相同的格式。依赖关系的结构如下: 这是一个例子: 要添加为编译时依赖项,只需dependency在Gradle构建文件的代码块中添加以下行: 为此的另一种语法可以显式地命名依赖项的每个组件,如下所示: 这在编译时增加了依赖性。 您也可以仅为测试添加

  • 我正在为一个供应商做一个库项目,它需要Android Volley作为一个依赖项。我已经在Android Studio中使用了这个Create aar文件来创建.aar文件,并将其包含在一个测试项目中,我正在使用这个添加本地.aar文件到使用“flatdirs”的Gradle build中是不起作用的。库链接精细,项目编制无差错。但在运行时,测试应用程序崩溃,说它找不到Volley 我的图书馆项目

  • 本文向大家介绍gradle 添加本地JAR文件依赖性,包括了gradle 添加本地JAR文件依赖性的使用技巧和注意事项,需要的朋友参考一下 示例 单罐 有时您需要添加本地JAR文件作为对Gradle构建的依赖。这是您可以执行的操作: path文件系统上的目录路径在哪里,是local_dependency.jar本地JAR文件的名称。该path可以相对于构建文件。 JAR目录 也可以添加一个jar目

  • 我试图在micronaut服务中使用自定义外部库(aws lambda通过api网关与graalvm本机编译) 我的库中有几个类需要jackson在反序列化过程中使用。因此,我在一个单独的配置类中将我的类添加到注释中(如文档中所述)https://docs.micronaut.io/latest/guide/index.html#_use_the_code_introspected_code_an