
171: Breaking (up) The Build
03/19/21 • 105 min
In an unprecedented show of activity - merely two weeks after the new years first episode (170) Mark and Greg are back, this time joined by Andres Almiray (Oracle) and Stephen Connolly (Cloudbees) to discuss all things build, modules, this weeks Java 16 release, and why Java programmers should take a look at the rust programming language.
Hosts- Mark Derricutt - @talios
- Greg Amer
- 00:00:15 Intro
- 00:00:37 Guest Introductions
- 00:02:05 Java 16 Released!
- 00:02:47 Jenkins and JDK Versions
- 00:04:38 var changes = LIPSERVICE;
- 00:05:11 Improve your Java by learning Rust
- 00:07:31 Hey Bruno - It's NOT YAML!
- 00:10:22 Project Liliput
- 00:11:31 Java Turning 26
- 00:13:30 Java for CLIs?
- 00:16:47 Modules: Thought on The Java Platform Module System
- 00:18:12 Modules: Modules and Versioning
- 00:19:15 Modules: Semantic Versioning
- 00:22:19 Build: Hijacking The Maven Release Process
- 00:26:40 Explicit Merge Commits
- 00:29:16 Build: JDK Dependency (Lacking) In Maven
- 00:31:21 Kotlin Standard Library Versions
- 00:31:53 Libraries should avoid Guava
- 00:35:36 Jackson Version 3 Changes
- 00:39:10 Modules: The Lack Of Runtime Versioning In Modules
- 00:39:46 Modules: Agents And Module Systems
- 00:40:39 Run The Damn Tests Twice
- 00:46:00 Modules: Module Systems and Debugging
- 00:55:02 The Ecosystem Is More Than Code
- 00:55:46 Build: The Hinderance of IDEs
- 00:56:47 Build: Mixins In Maven
- 01:02:18 Build: The Perfect POM is with a BOM
- 01:07:17 Build: Custom Lifecycles as Mixins
- 01:10:09 Build: Gradle is Surprises and Deathtraps
- 01:11:31 Build: Maven Consumer POM and POM 4.0.0
- 01:14:16 Build: Project Dependency Trees Proposal
- 01:23:28 Build: Maven 4 and 5 Releases
- 01:26:49 Build: Plugin Phases and Execution Order
- 01:33:05 Build: Interim Hacks and Abstractions Considered Harmful
- 01:39:33 The Problem with Preview Features
- Oracle Announces Java 16
- Project Lilliput - OpenJDK proposal to reduce the Java object header by half or more would lower memory and CPU usage on all Java workloads.
- Pull Requests merging instanceof Pattern matching
- JEP 401: Primitive Objects (Preview)and many other new JEPs landed for JDK 17.
- Caffeine cache goes 3.0 and with it - JDK11 baseline
- Semantic Versioning
- git-timestamp-maven-plugin
- Git Log's --first-parent Option
- The rise of Kotlin's stdlib and the versioning conflicts that may arise
- guava-beta-checkerfor Error Prone
- Jackson Release 3 Plans
- Build Health
- PomChecker 1.1.0 has been released!
- Problems with sorting, tidying poms
- Build / life cycle order
- Maven Bill of Materials
- Maven Tiles / Mixins
- Crafting better Gradle builds with the Kordamp Gradle Plugin suite with Andres Almiray (YouTube Video)
- Proposal: Project Dependency Trees schema
In an unprecedented show of activity - merely two weeks after the new years first episode (170) Mark and Greg are back, this time joined by Andres Almiray (Oracle) and Stephen Connolly (Cloudbees) to discuss all things build, modules, this weeks Java 16 release, and why Java programmers should take a look at the rust programming language.
Hosts- Mark Derricutt - @talios
- Greg Amer
- 00:00:15 Intro
- 00:00:37 Guest Introductions
- 00:02:05 Java 16 Released!
- 00:02:47 Jenkins and JDK Versions
- 00:04:38 var changes = LIPSERVICE;
- 00:05:11 Improve your Java by learning Rust
- 00:07:31 Hey Bruno - It's NOT YAML!
- 00:10:22 Project Liliput
- 00:11:31 Java Turning 26
- 00:13:30 Java for CLIs?
- 00:16:47 Modules: Thought on The Java Platform Module System
- 00:18:12 Modules: Modules and Versioning
- 00:19:15 Modules: Semantic Versioning
- 00:22:19 Build: Hijacking The Maven Release Process
- 00:26:40 Explicit Merge Commits
- 00:29:16 Build: JDK Dependency (Lacking) In Maven
- 00:31:21 Kotlin Standard Library Versions
- 00:31:53 Libraries should avoid Guava
- 00:35:36 Jackson Version 3 Changes
- 00:39:10 Modules: The Lack Of Runtime Versioning In Modules
- 00:39:46 Modules: Agents And Module Systems
- 00:40:39 Run The Damn Tests Twice
- 00:46:00 Modules: Module Systems and Debugging
- 00:55:02 The Ecosystem Is More Than Code
- 00:55:46 Build: The Hinderance of IDEs
- 00:56:47 Build: Mixins In Maven
- 01:02:18 Build: The Perfect POM is with a BOM
- 01:07:17 Build: Custom Lifecycles as Mixins
- 01:10:09 Build: Gradle is Surprises and Deathtraps
- 01:11:31 Build: Maven Consumer POM and POM 4.0.0
- 01:14:16 Build: Project Dependency Trees Proposal
- 01:23:28 Build: Maven 4 and 5 Releases
- 01:26:49 Build: Plugin Phases and Execution Order
- 01:33:05 Build: Interim Hacks and Abstractions Considered Harmful
- 01:39:33 The Problem with Preview Features
- Oracle Announces Java 16
- Project Lilliput - OpenJDK proposal to reduce the Java object header by half or more would lower memory and CPU usage on all Java workloads.
- Pull Requests merging instanceof Pattern matching
- JEP 401: Primitive Objects (Preview)and many other new JEPs landed for JDK 17.
- Caffeine cache goes 3.0 and with it - JDK11 baseline
- Semantic Versioning
- git-timestamp-maven-plugin
- Git Log's --first-parent Option
- The rise of Kotlin's stdlib and the versioning conflicts that may arise
- guava-beta-checkerfor Error Prone
- Jackson Release 3 Plans
- Build Health
- PomChecker 1.1.0 has been released!
- Problems with sorting, tidying poms
- Build / life cycle order
- Maven Bill of Materials
- Maven Tiles / Mixins
- Crafting better Gradle builds with the Kordamp Gradle Plugin suite with Andres Almiray (YouTube Video)
- Proposal: Project Dependency Trees schema
Previous Episode

170: The UI is Broken!
Illegal Argument Episode 170
Mark and Greg emerge from their 2020/2021 Christmas/New Year breaks, and temporary Level 3 lock down to break their silence, attempt to remember how to podcast, and further the rumor that we only record an episode on the eve of a new Java release.
Table of Contents- 0:44 Holiday Periods
- 1:27 Java 16 Release
- 2:35 Standalone Nashorn
- 3:18 Native Script
- 6:28 R.I.P. Chrome
- 12:51 Module Systems
- 14:37 setProtected(true)
- 20:42 Java 16 Release (again)
- 25:00 Incubation vs Preview Features
- 37:56 Pattern Matching FTW
- 43:30 Equality
- 44:57 Inline Types and Classes
- 50:34 The Need For Namespaces
- 55:10 Bintray Closing Down
- 59:27 R.I.P. netbeans.org
- 1:07:08 SOA in C/C++
- 1:14:18 Python and Rust Crypto
- 1:16:11 Autotools
- 1:18:34 Rust backend for GCC
- Why Namespacing Matters in Public Open Source Repositories
- Major Changes to Clojars - Verified Groups / Namespaces
- Java 16 - March 16 Release
- Is Google Locking Down Chrome to Resist the Rise of Chromium Based Browsers? - It's FOSS News
- Apple Card disabled my iCloud, App Store, and Apple ID accounts
Next Episode

172: Separating The Release From The Build
Once again it's been a long time coming between episodes, Auckland's recent extended Covid lock down and Mark's unscheduled and temporary relocation meant we missed out on discussion the release of Java 17 - and with Java 18 not all that far away, we thought it was about time to once again get our record on.
Andres Almiray once again joins us to talk releases, and specifically the JReleaser tool.
Table of Contents 00:00:11 Introduction00:00:59 Lockdowns and Freedoms00:03:45 Java 17 and 18 Releases00:04:47 Java 17 Uptake00:05:37 Misconceptions of The Module System00:07:49 Spring 6 and Spring Boot 3 move to JDK 17 Minimum00:08:56 Maven Enforcer Plugin: Extra Enforce Rule - Enforce Bytecode00:11:40 Java LTS Releases Switching to 2 year cycle00:14:13 Quality of Life Language Changes In Smaller Releases00:16:00 Java Version Migration00:20:11 Is The Release Process Broken00:21:10 Reproducible Builds00:22:32 Maven Artifact Plugin00:24:36 Introducing JReleaser00:28:07 OSX Package Managers vs Tarballs00:29:23 JBang00:31:10 JReleaser Deployment Targets00:33:55 Replacing Ansible/Puppet?00:41:25 JRelease for Non Java / C++ Projects00:42:10 Live at HEAD00:44:34 JRelease for Non Java / C++ Projects (cont)00:51:15 JReleaser Configuration Formats00:54:22 Upcoming 1 Release and Potential Renaming00:58:27 Lombok and 1.x01:01:21 SDK Man releases via JReleaser01:04:04 Does JReleaser release itself?01:06:10 Rolling Releases and Announcers01:14:02 Closing Rant: Automated Code Formatters Java RelatedIf you like this episode you’ll love
Episode Comments
Generate a badge
Get a badge for your website that links back to this episode
<a href="https://goodpods.com/podcasts/illegal-argument-49293/171-breaking-up-the-build-12990698"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to 171: breaking (up) the build on goodpods" style="width: 225px" /> </a>
Copy