Gradle / javacard 插件是否支持在多项目 gradle 构建中构建两个小程序依赖项?
Does Gradle / javacard plugin support the build of two applets dependency in a multi-project gradle build?
gradle 机制或特别是它的 javacard 插件是否有一种表达依赖关系的方法,其中一个 *.cap
的构建取决于另一个项目的 .exp
。
我用谷歌搜索并发现 this PR 插件似乎尚不支持我正在寻找的功能。
目前,我的构建方式是:./gradlew proj01:convertJavacard proj02:convertJavacard
。其中,我必须先指定proj01:convertJavacard
,因为它产生了proj02
需要的.exp
文件。目前,这有效。
我问这里是因为我想做一些优雅的事情:./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 插件单独无法 link 2 个 javacard 项目。 gradle 任务覆盖机制来拯救。
gradle 机制或特别是它的 javacard 插件是否有一种表达依赖关系的方法,其中一个 *.cap
的构建取决于另一个项目的 .exp
。
我用谷歌搜索并发现 this PR 插件似乎尚不支持我正在寻找的功能。
目前,我的构建方式是:./gradlew proj01:convertJavacard proj02:convertJavacard
。其中,我必须先指定proj01:convertJavacard
,因为它产生了proj02
需要的.exp
文件。目前,这有效。
我问这里是因为我想做一些优雅的事情:./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 插件单独无法 link 2 个 javacard 项目。 gradle 任务覆盖机制来拯救。