Taal Frankfurt, Duitsland

Deploy Java op Nodion

Nodion herkent een Java-project aan pom.xml, build.gradle of een Maven- of Gradle-wrapper. Het Java-buildpack bouwt het met een Temurin-JDK, slaat de tests over en start de grootste jar met java -jar op een Temurin-JRE, zodat de JDK buiten de run-image blijft. De app draait in Frankfurt, naast een managed PostgreSQL-database als je die nodig hebt.

Op Nodion deployen ›

vanaf 1 EUR / maand

Tot € 15 welkomsttegoed bij registratie

Herkend aan
pom.xml, build.gradle(.kts), mvnw of gradlew
Start
java -Dserver.port=$PORT -jar met de grootste jar
Java
Temurin 11, 17, 21 (standaard), 25, 26, 27
Regio
EU Central (Frankfurt)

Java stap voor stap deployen

  1. Commit de Maven- of Gradle-wrapper Met gradlew draait Nodion ./gradlew build -x test --no-daemon, en met mvnw draait het ./mvnw -B -DskipTests clean package. Een pom.xml zonder wrapper wordt gebouwd met de eigen Maven van Nodion. Een Gradle-project zonder gradlew mislukt, dus maak de wrapper aan met gradle wrapper en commit hem samen met de map gradle/wrapper. Tijdens de deployment worden de tests overgeslagen; draai ze in je CI.
  2. Zet de Java-versie vast Zonder vastgezette versie bouwt en draait Nodion met Java 21. Geef een andere versie op in system.properties. Instellingen voor de toolchain in pom.xml of je Gradle-build worden niet gelezen, dus zorg dat ze overeenkomen met dit bestand. system.properties
    java.runtime.version=25
  3. Luister op PORT Nodion stelt PORT in voor het webproces en geeft die als -Dserver.port door aan de JVM, wat voor Spring Boot volstaat. Andere frameworks, of je eigen server, lezen PORT zelf uit en binden aan 0.0.0.0.
    int port = Integer.parseInt(System.getenv().getOrDefault("PORT", "8080"));
  4. Maak de app aan Maak in het dashboard een applicatie aan vanuit je GitHub-, GitLab-, Bitbucket- of Gitea-repository en kies de branch, de regio EU Central en een grootte met minstens 1 GB geheugen. Laat de buildstrategie op Buildpacks staan; staat er een Dockerfile in de repository, dan kiest het formulier in plaats daarvan Dockerfile.
  5. Koppel een database en draai migraties Koppel op het tabblad Environment een PostgreSQL-database uit dezelfde regio. DATABASE_URL is een postgres://-URL, geen JDBC-URL, dus injecteer ook host, port, database, user en password onder je eigen namen en bouw daarmee de JDBC-URL, zoals de handleiding voor Spring Boot laat zien. Migraties die bij het opstarten draaien (Flyway, Liquibase) hebben verder niets nodig; elk ander commando kan draaien vanuit een release:-regel in een Procfile, één keer per build voordat de nieuwe versie start.

Goed om te weten

  • GeheugenDe JVM krijgt standaard JAVA_TOOL_OPTIONS=-XX:MaxRAMPercentage=80.0, dus de heap mag het grootste deel van het geheugen van de instantie gebruiken. Stel JAVA_TOOL_OPTIONS zelf in om dat te vervangen, of JAVA_OPTS om flags aan het startcommando toe te voegen. De meeste JVM-webapps hebben 1 GB of meer nodig.
  • Welke jar wordt gestart?Nodion start de grootste jar die direct in target/ of build/libs/ staat en slaat -plain-, -sources- en -javadoc-jars over. Bij een build met meerdere modules staat de uitvoerbare jar in een modulemap; start hem dan met een web:-regel in een Procfile en geef de poort zelf door.
  • Quarkus en andere frameworks-Dserver.port configureert alleen Spring Boot. Quarkus, Micronaut en andere frameworks hebben hun eigen poortinstelling op basis van PORT nodig. De standaard-fast-jar van Quarkus in target/quarkus-app/ wordt niet opgepikt: start hem met een Procfile-regel zoals web: java -Dquarkus.http.port=$PORT -jar target/quarkus-app/quarkus-run.jar, of bouw een uber-jar.

Wat Nodion voor je regelt

  • Deploys zonder downtime Push naar je branch en Nodion bouwt een nieuwe release. Het verkeer schakelt over zodra de nieuwe instanties hun health check doorstaan; een mislukte release laat de draaiende versie staan. Apps met een lokaal volume herstarten in plaats daarvan, omdat de schijf bij één instantie hoort.
  • Databases naast de app Managed PostgreSQL, pgvector, MySQL, Valkey en ClickHouse in dezelfde regio. Gekoppelde databases komen binnen als DATABASE_URL, REDIS_URL of CLICKHOUSE_URL.
  • Previews per pull request Zet previews aan en pull requests uit je repository krijgen een eigen app met een eigen URL en nieuwe, lege databases, automatisch of handmatig aangemaakt. Forks en pull requests van bots worden overgeslagen.
  • Workers, cronjobs en schalen Draai workers als extra processen van dezelfde app, plan jobs op het tabblad Cron en schaal elk proces naar maximaal 16 instanties.
  • Releasestap Met buildpacks draait een release:-regel in het Procfile bij elke nieuwe build. Dockerfile-apps, en redeploys of rollbacks naar een eerdere image, gebruiken een releasecommando dat op de app zelf is ingesteld en dat ook voorrang heeft op de Procfile-regel. Bij statische sites draait een releasestap in een image die alleen de gebouwde bestanden bevat.
  • Logs en metrics Build-, release- en runtimelogs plus metrics voor CPU, geheugen, schijf en netwerk van elke instantie in het dashboard.
  • Domeinen en HTTPS Een standaardhostnaam met HTTPS vanaf de eerste deploy; je eigen domeinen krijgen automatisch certificaten.

Verder lezen

Java op Nodion: vragen en antwoorden

Welke Java-versies kan ik gebruiken?

Temurin 11, 17, 21, 25, 26 en 27. Zonder vastgezette versie krijg je 21. Zet java.runtime.version in system.properties; instellingen voor de toolchain van Maven en Gradle worden niet gelezen.

Draaien mijn tests tijdens de deployment?

Nee. Gradle bouwt met -x test en Maven met -DskipTests, zodat deployments snel blijven. Draai je tests in je CI voordat je merget.

Werken Kotlin- en Scala-projecten?

Ja, zolang ze met Maven of Gradle bouwen en een uitvoerbare jar opleveren. sbt-projecten worden niet herkend; gebruik daarvoor een Dockerfile.

Waar draait mijn Java-app?

In de regio EU Central in Frankfurt, Duitsland. Build, registry, de app en de bijbehorende databases, volumes, buckets, logs en metrics blijven in die regio, en de API en het control plane van Nodion worden in Duitsland gehost. Nodion GmbH is gevestigd in Stuttgart.

Kan ik Java gebruiken volgens de AVG (GDPR)?

Nodion biedt hiervoor de basis: Nodion GmbH is gevestigd in Stuttgart (Duitsland). Kies je de regio Frankfurt, dan draaien de app, de databases en de volumes in Duitsland. De verwerkersovereenkomst (DPA, art. 28 AVG) sluit je elektronisch af in het dashboard. Of je configuratie aan de AVG voldoet, hangt ook af van hoe je de app instelt en gebruikt.

Wat kost het om Java op Nodion te draaien?

Een appinstantie kost vanaf 1 EUR per maand. De configuratie in het kostenoverzicht kost 5.50 EUR per maand: App 4 EUR, PostgreSQL 1.50 EUR. Prijzen zijn excl. btw en worden per seconde gefactureerd, en je kiest grotere formaten of meer instanties wanneer je ze nodig hebt.

Kan ik een eigen domein gebruiken voor mijn Java-app?

Ja. Elke app krijgt een standaardhostnaam met HTTPS. Voeg je eigen domein toe op het tabblad Domains van de app; het TLS-certificaat wordt automatisch uitgegeven en vernieuwd.

Geef je agent een cloud.

Ontvang tot € 15 welkomsttegoed bij je registratie.

Doorgaan met GitHub

of met e-mail

Blijf op de hoogte.

Productnieuws, geen spam. Je kunt je altijd weer afmelden.