Maven, Gradle & SDKMAN¶
- Apache Maven
- Related Tools
- Wikipedia.org: Apache Maven
- 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
- 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
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.
- 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¶
- 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
- Dzone: Maven IntelliJ Idea Project
- javaspringvaadin.wordpress.com: Crea un Proyecto Maven desde el IDE IntelliJ IDEA
- howtodoinjava.com: Maven IntelliJ Idea Project
- Apache Maven Changelog Plugin
- Apache Maven Checkstyle Plugin
- Apache Maven Javadoc Plugin
- Maven Surefire Report Plugin
Maven Cheat Sheets¶
- 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¶
- 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
Gradle Cheat Sheets¶
- 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
- 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.