Maven, Gradle & SDKMAN
- Apache Maven
- Eclipse JKube (formerly known as Fabric8 Maven Plugin) - Kubernetes & OpenShift Maven and Gradle Plugins
- Gradle
- SDKMAN
- Related Tools
Apache Maven
- Wikipedia.org: Apache Maven
- maven.apache.org
- apache/maven-mvnd Apache Maven Daemon. Easy way to speed up local build especially in multi-module Maven project - use Maven Daemon (mvnd)! mvnd builds Spring Cloud AWS 28% faster than traditional mvn command
- twitter.com/ASFMavenProject: The official twitter feed of the Apache Maven Project
- twitter.com/ASFMavenRelease: Maven Plugin Release Tweets of plugin releases
- Dzone.com: Starting with Apache Maven
- Dzone.com: Maven Demystified
- Dzone.com: Creating a Maven Archetype
- Dzone refcard: Apache Maven 2
- Dzone refcard: Getting Started with Maven Repository Management
- Dzone: Installing Maven With Your JDK
- Dzone: 10 Effective Tips on Using Maven
- Dzone: Building Java Applications With Maven
- howtodoinjava.com/maven
- Dzone: 7 Tips to Achieve High-Availability(HA) For Your Maven Repository
- maarten.mulders.it: What’s New in Maven 4
- dev.to: Maven Plugin Configuration - The (Unknown) Tiny Details
- ashishtechmill.com: Demystifying Google Container Tool Jib: Java Image Builder This article covers some internals of image layering created by container image builder Jib and explore what distroless images are and their benefits.
- blog.testproject.io: Getting Started with Maven in Less Than 10 Minutes โ Part 1
- Maven 3.8.2 is available now! It contains several fixes and non invasive backports from the Maven 4 branch.
- phauer.com: Why I Moved Back from Gradle to Maven
- rieckpil.de: Maven Setup For Testing Java Applications
- baeldung.com: Remove Duplicate Dependencies with Maven
Scaffolding a project with Maven (maven archetype)
- vogella.com: Maven for Building Java application - Tutorial
- maven.apache.org: Introduction to the Standard Directory Layout
- Handwritten Maven archetype project scaffolding
- programmer.ink: Maven scaffolding best practices
- Create the scaffolding for your microservice We will use an existing maven archetype that assembles a CDI-based Camel java project that we will then alter to implement the service.
Maven Tests
- Dzone: Maven Skipping Tests
- Dzone: Integration Tests with Maven
- Dzone.com: Running Cucumber with Maven
Dependency Resolution in Maven
- Apache Maven Dependency Analyzer
- Dzone.com: Solving Dependency conflicts in maven
- Dzone.com: Taming Maven: Transitive Dependency Pitfalls
- Dzone.com: Maven Dependency Management Without Going Full Maven If you like using Maven to manage your projects, check out the MyEclipse IDE with its dependencies only mode, allowing you to take advantage of just this feature
mvn dependency:analyze (shows you the usage of listed and unlisted dependencies)
mvn dependency:resolve (give me a list of everything I have declared, a nice way to avoid reading the POM file)
mvn dependency:tree (how you got something on your classpath)
Maven and Docker
IDEs
- Dzone: Maven, Eclipse, and Java 9 Eclipse users who use Maven are used to the M2E plugin issue of having your JRE reset on you. But there’s an additional gotcha between Java 8 and Java 9.
- code.visualstudio.com: Java Project Management in VS Code
- medium.com: Instalaciรณn de Java y Visual Studio Code en plataformas Windows
Intellij IDEA
- jetbrains.com/help/idea/maven-support.html
- Dzone: Maven IntelliJ Idea Project
- vaadin.com/learn/tutorials/import-maven-project-intellij-idea
- javaspringvaadin.wordpress.com: Crea un Proyecto Maven desde el IDE IntelliJ IDEA
- howtodoinjava.com: Maven IntelliJ Idea Project
Maven Plugins
- Apache Maven Changelog Plugin
- Apache Maven Checkstyle Plugin
- Apache Maven Javadoc Plugin
- Maven Surefire Report Plugin
Maven Cheat Sheets
Other Commands
- Display contents of a jar file:
jar tf target/example-1.0.0-SNAPSHOT.jar
Docker Maven Plugin (fabric8)
- docker-maven-plugin This is a Maven plugin for building Docker images and managing containers for integration tests. It works with Maven 3.0.5 and Docker 1.6.0 or later.
Fabric8 Maven Plugin (deprecated)
Eclipse JKube (formerly known as Fabric8 Maven Plugin) - Kubernetes & OpenShift Maven and Gradle Plugins
- Eclipse JKube ๐ Cloud-Native Java Applications without a hassle. Eclipse JKube is a collection of plugins and libraries that are used for building container images using Docker, JIB or S2I build strategies. Eclipse JKube generates and deploys Kubernetes/OpenShift manifests at compile time too. It brings your Java applications on to Kubernetes and OpenShift by leveraging the tasks required to make your application cloud-native. Eclipse JKube also provides a set of tools such as watch, debug, log, etc. to improve your developer experience.
- GitHub: Eclipse JKube
- developers.redhat.com: Migrating from Fabric8 Maven Plugin to Eclipse JKube 1.0.0
- developers.redhat.com: Cloud-native Java applications made easy: Eclipse JKube 1.0.0 now available
- developers.redhat.com: Java development on top of Kubernetes using Eclipse JKube
- eclipse.org: Migration Guide for projects using Fabric8 Maven Plugin to Eclipse JKube ๐
- YouTube: Deploying a Quarkus application into Kubernetes using JKube | Cloud Tool Time | Marc Nuri ๐
- blog.marcnuri.com: Eclipse JKube introduction: Java tools and plugins for Kubernetes and OpenShift
- blog.marcnuri.com: Eclipse JKube 1.4.0 is now available!
Gradle
- gradle.org
- docs.gradle.org: Getting Started
- Dzone: “Refined” Gradle
- Dzone: simplify your script build with gradle
- Dzone: build a java app with gradle
- Playing with gradle
- baeldung.com: Kotlin DSL for Gradle
- baeldung.com: Convert a Maven Build to Gradle
Gradle Cheat Sheets
SDKMAN
- SdkMan is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems. It provides a convenient Command Line Interface (CLI) and API for installing, switching, removing and listing Candidates. Formerly known as GVM the Groovy enVironment Manager, it was inspired by the very useful RVM and rbenv tools, used at large by the Ruby community.
- Using Jenkins Pipeline parallel stages to build Maven project with different JDKs
- Demo: A single Jenkinsfile, a Java Maven project, a single Dockerfile, multiple Java versions build and tested in parallel thanks to SDKMAN:
- Using SDKMAN! as a docker image for Jenkins Pipeline - a step by step guide ๐
- Multiple Java versions in a single Jenkins Pipeline using Docker and SDKMAN๐ In this video, I show you how you can use Jenkins Declarative Pipeline to create a build pipeline that compiles the Maven Java project using three different Java versions (8, 11, and 15.) You will learn how to use a matrix section of the Jenkins Pipeline to define parallel stages, as well as how to create a Docker image that provides both Java and Maven using the powerful SDKMAN command-line tool. After watching this video you should feel comfortable with setting up multiple parallel stages to build your Java project using different versions of the compiler. And what is most important - it does not require creating Dockerfiles for each Java version. I will show you how to build the pipeline using just a single Dockerfile that does the job.
- Jenkins Pipeline Maven build demo
Related Tools
- jitpack.io ๐ Easy to use package repository for Git. Publish your JVM and Android libraries. Publishing your own library to the Maven Central repository may be a painful experience. Therefore, you may just create a GitHub Release for your library, and then include it as a dependency using jitpack.
- JBang Run Java code directly. Reuse Maven dependencies with ease. Lets Students, Educators and Professional Developers create, edit and run self-contained source-only Java programs with unprecedented ease.