构建工具

Introduction of Google Error-Prone

Introdution to Google Error-Prone in Maven, which augments the compiler's type analysis and catches more mistakes at compile time!

08 Nov 2020

Build Helper Maven Plugin

How to set up additional source directory (src/it/java) and resource directory (src/it/resources) for integration tests in Maven project using Build Helper Maven Plugin.

28 Dec 2019

Inspect Maven Dependency Tree

Inspecting Maven dependencies via Maven Depenedency Plugin: dependency listing, dependency filtering, exporting result to file etc.

11 Nov 2019

Docker Maven Plugin

Introduction to Docker Maven Plugin: how to build and run Docker images in Maven via samples from Debezium and Docker Maven Plugin itself.

03 Nov 2019

Checkstyle CustomImportOrder

Fix import order in Java class using Checkstyle's CustomImportOrder module. This article explains how I did it for Nuxeo Online Services.

20 Aug 2019

Specifying Maven Local Repository From CLI

Use option "maven.repo.local" to specify the Maven local repository path.

16 Jul 2019

Speed Up The Maven Build

How to speed up a Maven project by using different tips.

01 Nov 2018

Maven Failsafe Plugin Understanding

Maven Failsafe Plugin runs integration tests for your Maven project. In this article, we will see what is Failsafe plugin and its common use cases.

04 Oct 2018

Maven Surefire Plugin Understanding

Maven Surefire Plugin is used during the "test" phase of Maven build lifecycle to execute unit tests. It can be used with JUnit, TestNG or other frameworks. This article explains what is Surefire plugin and its common use cases.

16 Sep 2018

Maven Resources Plugin Understanding

Maven Resources Plugin is part of the core Maven plugins, which handles resources copying to the output directory. It has 3 goals: "resources", "testResources", and "copy-resources". In this post, I'll show you some common use-cases of this plugin.

14 Sep 2018

Maven JAR Plugin Understanding

A step-by-step guide for understanding Maven JAR Plugin in Java 8 and Java 11.

05 Sep 2018

Maven Compiler Plugin Understanding

A step-by-step guide for understanding Maven Compiler Plugin in Java 11.

29 Aug 2018

Maven: Deploy Artifacts to Nexus

Declare Maven deploy plugin in the parent POM. It's the same no matter your project is a single module project or a multi-modules project. Then, define the Nexus repository id and url in distributionManagement. After that, add your credentials in ~/.m2/settings.xml. Finally, execute command `mvn deploy` to deploy your artifacts.

04 Aug 2018

Java 9 Migration

Java 9 migration for Maven project. It consists Java 9 installation, IDE update, Maven project update, CI update, and fixing tests. This article is written using macOS and IntelliJ IDEA.

28 Feb 2018

Learning Checkstyle

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.

06 Feb 2018

Learning GWT with Maven

Today, I want to share how to learn GWT 2.8 with Maven GWT Plugin. I wrote this post because the official GWT tutorial has some inconvenience: source code and resources are stored as GWT standard structure, commands must be launched from Apache Ant, JARs and classpath must be handled explicitly etc. I found it more comfortable to start with Maven, the tool which many Java developers are familiar with.

29 Jan 2018

Sonar Integration with Maven

A concret Sonar integration example for your Java project, using Maven + JaCoCo + SonarCloud + Jenkins.

09 Dec 2017

Maven Plugins Understanding

Some interesting facts that I discovered about Maven plugins.

07 Nov 2017

Test a POM-Packaging Maven Module

Recently, I need to write tests for resources inside a Maven module and I met some technical issues. The context of the situation is that I need to test some resources located in a Maven module, where its packaging value is pom. I think it’s worth to take some notes, so I wrote them down and share with you.

23 Sep 2017