2

我正在为 Firebase Javascript SDK 制作一些 kotlin JS 包装器。因此,我使用 external 关键字和 @file:JsModule 注释创建了项目,如下所示:

@file:JsModule("@firebase/messaging-types")
package my.package.firebase.messaging

import kotlin.js.Promise

external class FirebaseMessaging {
    fun getToken(): Promise<String?>
    ...
}

我可以在我的 gradle 中将它发布到我的本地 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 文件中可用?

4

1 回答 1

1

好吧,实际上您有很多选择,但最简单的一种是复制您在processResources任务中需要的所有内容,例如:

processResources {
  from ('/some/js/resources') {
    include '**/*.js'
  }
}

这样任何文件都将在 jar 中结束。但是,请记住,到目前为止,这不会影响 IntelliJ IDEA 中的运行配置。也就是说,如果你有运行配置,即使它是基于 gradle build 的,这个文件仍然会被遗漏,这个问题应该以不同的方式解决。

另一种有用的技术是将此依赖项存储在单独的 jar 中(甚至可能在不同的子项目中),并将此 jar 作为运行时依赖项。

于 2019-01-24T11:56:47.710 回答