Как упаковать зависимости javascript в JAR проекта Kotlin JS? - PullRequest
0 голосов
/ 11 декабря 2018

Я делаю несколько оболочек kotlin JS для Firebase Javascript SDK.Таким образом, я создал проект с внешним ключевым словом и аннотацией @file: JsModule, что-то вроде этого:

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

import kotlin.js.Promise

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

Я могу опубликовать его в своем локальном репозитории maven с этим в моем gradle:

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?

1 Ответ

0 голосов
/ 24 января 2019

Ну, на самом деле у вас есть много вариантов, но самый простой - скопировать все, что вам нужно в processResources задании, что-то вроде:

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

Таким образом, любой файл окажется в банке.Однако имейте в виду, что на данный момент это не повлияет на работу конфигураций в IntelliJ IDEA.Тем не менее, если у вас запущена конфигурация, даже если она основана на сборке Gradle, эти файлы все равно будут пропущены, и эту проблему следует решать по-другому.

Другой полезный метод - хранить эти зависимости в отдельном jar (возможно, даже в другом подпроекте) и использовать этот jar в качестве зависимости во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...