This is the Nostr Game Engine maintained TeaVM distribution. It follows the
upstream TeaVM project while carrying the fixes required by NGE's JavaScript
and WebAssembly GC browser backends. Published fork artifacts use the
org.ngengine Maven group; Java package names remain org.teavm for source
compatibility.
Gradle applications using a snapshot should add the Maven Central snapshots
repository to plugin resolution in settings.gradle.kts:
pluginManagement {
repositories {
maven("https://central.sonatype.com/repository/maven-snapshots/")
gradlePluginPortal()
}
}They can then use the fork plugin id and version:
plugins {
id("org.ngengine.teavm") version "0.16.0-SNAPSHOT"
}Snapshots are available from
https://central.sonatype.com/repository/maven-snapshots/. Release artifacts
are published to Maven Central. Projects that declare fork libraries directly
must add the same snapshot repository to dependencyResolutionManagement or
their normal dependency repositories. The original TeaVM project and
documentation remain available at teavm.org.
See documentation at the project web site.
Useful links:
Simply clone source code (git clone https://github.com/NostrGameEngine/teavm.git)
and run Gradle build (./gradlew publishToMavenLocal or gradlew.bat publishToMavenLocal).
You should build samples separately, as described in corresponding readme file.
:tools:classlib-comparison-gen:build– build Java class library compatibility report. result is available at:tools/classlib-comparison-gen/build/jcl-support
If you are not satisfied with Maven, you can embed TeaVM in your program
or even create your own plugin for any build tool, like Ant or Gradle.
The starting point for you may be org.teavm.tooling.TeaVMTool class from teavm-tooling artifact.
You may want to go deeper and use org.teavm.vm.TeaVM from teavm-core artifact, learn how TeaVMTool initializes it.
To learn how to use TeaVMTool class itself, find its usages across project source code.
You most likely encounter Maven and IDEA plugins.
Please, notice that these APIs for embedding are still unstable and may change between versions.
TeaVM is distributed under Apache License 2.0. TeaVM does not rely on OpenJDK or code or other (L)GPL code. TeaVM has its own reimplementation of Java class library, which is either implemented from scratch or based on non-(L)GPL projects:
- Apache Harmony (Apache 2.0)
- Joda-Time (Apache 2.0)
- jzlib (BSD style license)
If you want to contribute code to implementation of Java class library, please make sure it's not based on OpenJDK or other code licensed under (L)GPL.
More information is available at the official site: https://teavm.org.
Ask your questions by email: info@teavm.org. Also, you can report issues on a project's issue tracker.