Gradle 6: Verbesserte Abhängigkeitsverwaltung

Diesen Monat wurde Gradle 6 veröffentlicht, und es stellt sich die übliche Frage, was gibt es Neues?

Eines der größeren Ziele von Gradle 6 ist es, den Umgang mit großen und komplexen Abhängigkeiten zu verbessern. Dies soll einige übliche Probleme reduzieren:

  • Eine Abhängigkeit wird in zwei verschiedenen Versionen, welche nicht kompatibel sind, angefordert.
  • Mehrere Abhängigkeiten bieten dasselbe Feature an (z. B. Logback und Log4J)
  • Inkompatible Runtimes (z. B. Update von Groovy über eine Abhängigkeit verursacht Fehler in älterem Groovy-Code)
Continue reading
Posted in Build, config and deploy | Leave a comment

Docker Best Practices: Keine “FAT JARs” mehr!

Dieser Beitrag unserer Blog-Serie beleuchtet, warum die so häufig genutzten “Fat” oder “Uber” Jars und auch WAR-Dateien schlecht für die Bereitstellung mit Docker sind und welche sinnvollen Alternativen existieren.

Continue reading
Posted in Java Runtimes - VM, Appserver & Cloud | Tagged , | 2 Comments

Gradle und testspezifische Classpaths in Eclipse

Heute widmen wir uns einem Problem, das in einer der neuen Versionen von Gradle in Version 5.6 bereits gelöst wurde, sich allerdings für alle, die eine ältere Version verwenden, immer noch stellt.

Continue reading
Posted in Eclipse Universe | Tagged , | Leave a comment

Wo man bei der Autogenerierung von Methoden mit Eclipse aufpassen sollte

Beim Generieren von Gettern und Settern in Eclipse kann es zu einem Problem mit der CamelCase-Schreibweise der Variablen kommen. Sollte der zweite Buchstabe des Variablennamens Upper-Case sein, wird der erste Buchstabe im generierten Getter/Setter Lower-Case (statt wie üblich Upper-Case). Der Fall könnte zu Problemen mit Frameworks führen, die anhand des Methodennamens abhängig von der CamelCase Schreibweise semantische Zusammenhänge interpretieren.

Continue reading
Posted in Did you know? | Tagged , | Leave a comment

Java 13 Überblick

Der neue Release-Zyklus der Java Releases ist jetzt in vollem Schwung, so kündigt sich bereits das nächste Release an. Java 13 ist jetzt da und bringt einige Neuerungen mit. Vorwiegend umfassen die neuen Features Erweiterungen oder Korrekturen der bereits in Java 12 enthaltenen Features. Über Java 12 Features haben wir hier bereits ausführlich berichtet.

Continue reading
Posted in Java Basics | Tagged , | Leave a comment

Docker Best Practices: Sortierte Layer

Das korrekte Sortieren der Layer eines Docker-Images optimiert den Build und auch die Ausführung der verschiedenen Images. Schlimmstenfalls wird immer alles neu gebaut und dann durch die komplette Infrastruktur geschoben.

Continue reading
Posted in Java Runtimes - VM, Appserver & Cloud | Tagged | 3 Comments

Gradle 5.5

Mittlerweile ist es schon einen Monat her, dass Gradle 5.5 veröffentlicht wurde, also höchste Zeit, sich die neuesten Änderungen anzuschauen.

Als erstes neues Feature fällt sofort auf, dass der Init Task von Gradle jetzt direkt anbietet, JUnit Jupiter als Testframework vorzukonfigurieren. Außerdem hat der Init Task jetzt auch gelernt, Gradle Plugin Projekte zu generieren, welches die Entwicklung eigener Plugins deutlich vereinfacht.

Für Unternehmen, die bislang einen Mechanismus zum Vorgeben von unternehmensweiten Einstellungen vermisst haben, gibt es jetzt die Option, eine eigene Gradle Distribution zu erstellen. In diese können bereits vorkonfigurierte gradle.properties Dateien inkludiert werden. Dies ermöglicht es, Standardeinstellungen festzulegen, erlaubt aber auch einzelnen Projekten, diese zu überschreiben.

Für Plugin-Autoren sind eine ganze Reihe kleinerer Verbesserungen eingeführt worden, im Speziellen existiert jetzt eine ObjectFactory, die es ermöglicht, viele Objekttypen zu erstellen, welche zuvor eine Projekt Instanz benötigten. Dies vereinfacht nicht nur die Erstellung der Objekte, sondern ermöglicht es auch Plugins, die nicht auf Projektebene arbeiten, lazy evaluiert zu werden.

Nicht zuletzt wurde die Eclipse-Integration weiter verbessert. Buildship ist jetzt in der Lage, mehrere Projekte mit identischen Namen in Eclipse zu importieren.

Posted in Build, config and deploy | Tagged | Leave a comment