我正在为Firebase Javascript SDK做一些kotlin JS包装器。因此,我使用外部关键字和@file:JsModule批注创建了项目,就像这样:
@file:JsModule("@firebase/messaging-types")
package my.package.firebase.messaging
import kotlin.js.Promise
external class FirebaseMessaging {
fun getToken(): Promise<String?>
...
}
我可以将它发布到我的本地Maven存储库中:
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
artifacts {
archives sourcesJar
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId = project.group
artifactId = 'firebase-wrappers'
version = project.version
from components.java
artifact sourcesJar
}
}
}
如何添加NPM依赖项并确保它在生成的JAR文件中可用?
答案 0 :(得分:0)
实际上您有很多选择,但是最简单的选择是复制processResources
任务中需要的所有信息,例如:
processResources {
from ('/some/js/resources') {
include '**/*.js'
}
}
这样,任何文件都将最终保存在jar中。但是,请记住,到目前为止,这不会影响IntelliJ IDEA中的运行配置。也就是说,即使您正在运行配置,即使它是基于gradle构建的,也仍然会丢失此文件,并且此问题应该以其他方式解决。
另一种有用的技术是将此依赖项存储在单独的jar中(甚至可能在另一个子项目中),并将此jar作为运行时依赖项。