Jörg Rade
12/21/2021, 1:40 PMTask with name 'frontendBrowserProductionWebpack' not found in root project 'kroviz'.
build.gradle.kts reads:
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
plugins {
val kotlinVersion: String by System.getProperties()
kotlin("plugin.serialization") version kotlinVersion
kotlin("js") version kotlinVersion
val kvisionVersion: String by System.getProperties()
id("io.kvision") version kvisionVersion
}
version = "2.0.0-SNAPSHOT"
group = "org.apache.isis.client"
kotlin.sourceSets.all {
languageSettings.useExperimentalAnnotation("kotlin.RequiresOptIn")
}
repositories {
mavenCentral()
jcenter()
mavenLocal()
}
// Versions
val kotlinVersion: String by System.getProperties()
val kvisionVersion: String by System.getProperties()
// Custom Properties
val webDir = file("src/main/web")
kotlin {
js {
browser {
runTask {
outputFileName = "main.bundle.js"
sourceMaps = false
devServer = KotlinWebpackConfig.DevServer(
open = false,
port = 3000,
proxy = mutableMapOf(
"/kv/*" to "<http://localhost:8080>",
"/kvws/*" to mapOf("target" to "<ws://localhost:8080>", "ws" to true)
),
static = mutableListOf("$buildDir/processedResources/js/main")
)
}
webpackTask {
outputFileName = "main.bundle.js"
}
testTask {
useKarma {
useChromeHeadless()
}
}
}
binaries.executable()
}
sourceSets["main"].dependencies {
implementation(npm("react-awesome-button", "*"))
implementation(npm("prop-types", "*"))
implementation("io.kvision:kvision:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-css:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-datetime:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-select:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-spinner:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-upload:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-dialog:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-typeahead:$kvisionVersion")
implementation("io.kvision:kvision-fontawesome:$kvisionVersion")
implementation("io.kvision:kvision-i18n:$kvisionVersion")
implementation("io.kvision:kvision-richtext:$kvisionVersion")
implementation("io.kvision:kvision-handlebars:$kvisionVersion")
implementation("io.kvision:kvision-datacontainer:$kvisionVersion")
implementation("io.kvision:kvision-chart:$kvisionVersion")
implementation("io.kvision:kvision-tabulator:$kvisionVersion")
implementation("io.kvision:kvision-pace:$kvisionVersion")
implementation("io.kvision:kvision-toast:$kvisionVersion")
implementation("io.kvision:kvision-react:$kvisionVersion")
implementation("io.kvision:kvision-routing-navigo:$kvisionVersion")
implementation("io.kvision:kvision-state:$kvisionVersion")
implementation("io.kvision:kvision-rest:$kvisionVersion")
implementation("io.kvision:kvision-moment:$kvisionVersion")
implementation("io.kvision:kvision-maps:$kvisionVersion")
implementation(npm("xmltojson", "1.3.5", false))
implementation(npm("flatted", "3.2.2", false))
implementation(npm("diff", "5.0.0", false))
implementation(npm("diff2html", "3.4.13", false))
implementation(npm("xml-beautify", "1.1.2", false))
implementation(npm("xterm", "4.15.0", false))
}
sourceSets["test"].dependencies {
implementation(kotlin("test-js"))
implementation("io.kvision:kvision-testutils:$kvisionVersion")
}
sourceSets["main"].resources.srcDir(webDir)
}
afterEvaluate {
tasks {
create("frontendArchive", Jar::class).apply {
dependsOn("frontendBrowserProductionWebpack")
group = "package"
archiveAppendix.set("frontend")
val distribution =
project.tasks.getByName("frontendBrowserProductionWebpack", KotlinWebpack::class).destinationDirectory!!
from(distribution) {
include("*.*")
}
from(webDir)
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
into("/assets")
inputs.files(distribution, webDir)
outputs.file(archiveFile)
manifest {
attributes(
mapOf(
"Implementation-Title" to rootProject.name,
"Implementation-Group" to rootProject.group,
"Implementation-Version" to rootProject.version,
"Timestamp" to System.currentTimeMillis()
)
)
}
val dependencies =
project.tasks["frontendArchive"].outputs.files
dependencies.forEach {
if (it.isDirectory) from(it) else from(zipTree(it))
}
exclude("META-INF/*.RSA", "META-INF/*.SF", "META-INF/*.DSA")
inputs.files(dependencies)
outputs.file(archiveFile)
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
}
}
What am I missingRobert Jaros
12/21/2021, 1:44 PMRobert Jaros
12/21/2021, 1:44 PMRobert Jaros
12/21/2021, 1:45 PMkotlin("multiplatform")
pluginRobert Jaros
12/21/2021, 1:46 PMRobert Jaros
12/21/2021, 1:46 PMfrontend
with js
Robert Jaros
12/21/2021, 1:47 PMjsBrowserProductionWebpack
taskRobert Jaros
12/21/2021, 1:48 PMzip
task (it's defined in kvision gradle plugin) and change file extension.Robert Jaros
12/21/2021, 1:49 PM