product: jvm/app

apply:
  - ../common.module-template.yaml

repositories:
  - id: gradle-libs
    url: https://repo.gradle.org/gradle/libs-releases

dependencies:
  - ../amper-build-info
  - ../amper-jdk-provisioning
  - ../amper-maven-converter
  - ../amper-maven-publish
  - ../amper-project-templates
  - ../amper-telemetry
  - ../amper-wrapper
  - ../core
  - ../core-intellij
  - ../frontend-api
  - ../frontend/schema
  - ../frontend/dr
  - ../amper-compose-hot-reload-recompiler-extension
  - ../libraries/async-processes
  - ../libraries/compose-resources
  - ../libraries/concurrency
  - ../libraries/incremental-cache
  - ../libraries/serialization-extended
  - ../libraries/stdlib-extended
  - ../libraries/system-info
  - ../libraries/telemetry
  - ../libraries/xcode-model-ext
  - ../android-integration/amper-android-runner
  - ../android-integration/amper-android-sdk-detector
  - ../java-incremental-compilation/amper-jic-api
  - ../amper-maven-plugins-compatibility
  - $libs.bouncycastle.bcprov # for keystore generation
  - $libs.bouncycastle.bcpkix # for keystore generation
  - $libs.intellij.amper.xcodemodel
  - $libs.intellij.parsing.core
  - $libs.intellij.platform.core
  - $libs.intellij.platform.coreImpl
  - $libs.intellij.platform.util
  # the API itself is our Kotlin version, but we dynamically download the impl in the user-defined Kotlin version
  - $libs.kotlin.buildToolsApi
  - $libs.slf4j.api
  - $libs.tinylog.api
  - $libs.tinylog.impl
  - $libs.tinylog.slf4j
  - $libs.tinylog.jul
  - $libs.opentelemetry.api
  - $libs.opentelemetry.exporterLoggingOtlp
  - $libs.opentelemetry.sdk
  - $libs.opentelemetry.sdkTrace
  - $libs.opentelemetry.kotlin
  - $libs.jna.platform
  # for files downloading
  - $libs.ktor.client.cio
  - $libs.ktor.client.encoding
  - $libs.ktor.client.auth
  - $libs.ktor.client
  # for something else
  - $libs.android.tools.sdklib
  - $libs.android.tools.common
  - $libs.android.tools.sdkCommon
  - $libs.android.tools.ddmlib
  - $libs.clikt
  - $libs.clikt.markdown
  - $libs.xmlutil.serialization
  - $libs.intellij.deps.asyncProfiler
  - $libs.kotlinx.coroutines.debug
  - $libs.kotlinx.coroutines.slf4j
  - $libs.kotlinx.datetime
  - $libs.teamcity.serviceMessages
  - jakarta.xml.bind:jakarta.xml.bind-api:2.3.2 # required by Android SDK tools but somehow not brought transitively
  - $libs.compose.hot.reload.core
  - $libs.compose.hot.reload.orchestration
  - $libs.ktor.server.core
  - $libs.ktor.server.netty
  - $libs.ktor.server.sse
  - $libs.ktor.server.contentNegotiation
  - $libs.ktor.serialization.kotlinx.json
  - $libs.maven.reporting
  - $libs.maven.plugin.annotations
  - $libs.maven.site.plugin
  - com.google.code.findbugs:jsr305:3.0.2

test-dependencies:
  - ../test-base

plugins:
  amper-distribution:
    enabled: true
    extraClasspaths:
      "plugins-processor": [ ../extensibility/amper-schema-processor ]
      "extensibility-api": [ ../extensibility/amper-extensibility-api ]
      "recompiler-extension": [ ../amper-compose-hot-reload-recompiler-extension ]
      "amper-jic-runner": [ ../java-incremental-compilation/amper-jic-runner ]
    embedClasspathAsResources:
      classpath: [ ../amper-junit-listeners ]
      resourceDirName: "junit-listeners"

settings:
  publishing:
    # Old versions of Amper check the maven-metadata.xml of the old 'cli' artifact name, so we need to keep publishing
    # to this artifactId. This is because even if we publish files with both 'cli' and 'amper-cli' names, only the
    # maven-metadata.xml of the artifactId specified here will be updated.
    name: cli
  kotlin:
    serialization: json
