gpt4 book ai didi

gradle - 使用 Gradle 在 Kotlin 服务器和客户端项目之间共享代码

转载 作者:IT老高 更新时间:2023-10-28 13:42:22 27 4
gpt4 key购买 nike

我想使用单独的 shared 项目在服务器 (JVM) 和客户端 (JS) 之间共享一些代码。我看过一个solution使用 Maven,但我不确定如何将其转换为 Gradle 项目。此外,official guide 中没有任何共享项目的示例。 .那么,具有这种设置的最小 build.gradle 看起来如何?

最佳答案

为了完整起见,这是我几乎同时使用热键创建的设置:

主要的settings.gradle:include 'shared', 'client', 'server'

build.gradle:

buildscript {
ext {
kotlinVer = '1.0.0-beta-4589'
}
repositories {
mavenCentral()
maven {
url 'http://oss.sonatype.org/content/repositories/snapshots'
}
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVer"
}
}

allprojects {
apply plugin: 'idea'
group = 'some.company'
version = '0.0.1'

ext {
kotlinVer = '1.0.0-beta-4589'
// Lib versions go there.
}
repositories {
mavenLocal()
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
}
}

project('shared') {
apply plugin: 'kotlin'
}

project('server') {
apply plugin: 'kotlin'
apply plugin: 'application'

mainClassName = 'some.company.Main'
dependencies {
compile project(':shared')
}
}

project('client') {
apply plugin: 'kotlin2js'
dependencies {
compile project(':shared')
}
}

客户端build.gradle:

apply plugin: 'kotlin2js'

compileKotlin2Js {
kotlinOptions.outputFile = "server/src/main/resources/static/js/app.js"
kotlinOptions.sourceMap = true
}

sourceSets {
main.kotlin.srcDirs += '../shared/src/main/kotlin'
// hotkey's solution:
// main.kotlin.srcDirs += project(':shared').sourceSets.main.kotlin.srcDirs
}

dependencies {
compile "org.jetbrains.kotlin:kotlin-js-library:$kotlinVer"
}

服务器build.gradle:

apply plugin: 'kotlin'

sourceCompatibility = 1.7
targetCompatibility = 1.7

dependencies {
// Libs go there.
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVer"
testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVer"
}

共享项目的 build.gradle 仅包含 apply plugin: 'kotlin' 而且,我不确定使用共享库是否简单(或必要,在很多情况下),所以我想它甚至可以保持空白。

gradle client:build 在服务器的静态资源文件夹中生成 JavaScript 文件。 gradle idea 生成具有正确链接的依赖项和源文件夹的 IntelliJ 项目(只要使用默认名称 - src/main/kotlin 等;请参阅 Kotlin Gradle 官方手册自定义源目录)。

关于gradle - 使用 Gradle 在 Kotlin 服务器和客户端项目之间共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999133/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com