Gradle / javacard插件是否支持在多项目gradle构建中构建两个applet依赖项?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle / javacard插件是否支持在多项目gradle构建中构建两个applet依赖项?相关的知识,希望对你有一定的参考价值。

gradle机制或特别是它的javacard插件有一种表达依赖项的方式,其中一个*.cap的构建取决于另一个项目的.exp

我用Google搜索并找到this PR,似乎该插件尚不支持我要查找的功能。

[当前,我的构建方式是:./gradlew proj01:convertJavacard proj02:convertJavacard。其中,我必须先指定proj01:convertJavacard,因为它产生了.exp所需的proj02文件。目前,这可行。

我问这里是因为我想做的是美观的./gradlew convertJavacard

proj02/build.gradle中,我尝试了以下相关部分来表示对proj01的依赖关系:

javacard 
    cap 
        dependencies 
            javacardExport files(rootDir.absolutePath + '/build/javacard/')
            compile files(rootDir.absolutePath + '/build/classes/java/main/')
            compile project(':proj01')
        
    

它没有产生proj01 .exp文件,因此生成依赖项失败。 compile project(':proj01')依赖项行似乎尝试执行类似的操作:./gradlew proj01:assemble,因为它产生了类似的输出,但没有.exp文件。因此,proj02建立失败。

关于如何通过以下方式进行构建的任何提示:./gradlew convertJavacard

答案

我想我找到了一种以gradle方式工作的解决方案。尽管gradle plugin无法正确解析两个javacard项目之间的依赖关系,但gradle任务的覆盖机制使我可以插入其他依赖关系。

以下是proj02/build.gradle的相关部分:

convertJavacard 
    dependsOn ":proj01:convertJavacard"


javacard 
    cap 
        dependencies 
            javacardExport files(rootDir.absolutePath + '/build/javacard/')
            compile files(rootDir.absolutePath + '/build/classes/java/main/')
            compile project(':proj01')
        
    

因此,总之,javacard插件无法链接2个javacard项目。 gradle任务覆盖机制得以解救。

以上是关于Gradle / javacard插件是否支持在多项目gradle构建中构建两个applet依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

错误:Android Gradle 插件仅支持 Kotlin Gradle 插件版本 1.3.0 及更高版本

Javacard 中的 ECDSA 签名

在 Java Card 平台上使用 grpc

为啥我会收到错误消息:Android Gradle 插件仅支持 Kotlin Gradle 插件版本 1.3.10 及更高版本

错误:Android Gradle 插件仅支持 Kotlin Gradle 插件版本 1.3.10 及更高版本

颤振| Android Gradle插件仅支持Kotlin Gradle插件版本1.3.0及更高版本