Mac Tutorials - Herong's Tutorial Examples - v3.08, by Herong Yang
Use "parent" in Maven Project File
This section provides a tutorial on how to use 'profile' in Maven project file to provide options to control the build process.
If you want to organize a large Java development project into multiple modules, you can use the "parent" entry to link module-level pom.xml project files to the top-level project file. Here is how I created a two-module Java project:
1. Create the top-level directory and pom.xml file:
herong$ mkdir hello herong$ vi hello/pom.xml
2. Define "packaging" as "pom" and a list of "modules" in the top-level pom.xml:
<?xml version="1.0" encoding="utf-8"?> <project> <modelVersion>4.0.0</modelVersion> <groupId>herong</groupId> <artifactId>hello</artifactId> <version>1.0.1</version> <name>Hello</name> <description>Hello project</description> <packaging>pom</packaging> <properties> <source>1.8</source> <target>1.8</target> </properties> <modules> <module>module-a</module> <module>module-b</module> </modules> </project>
3. Create module-level sub-directories and pom.xml files:
herong$ mkdir hello/module-a herong$ vi hello/module-a/pom.xml herong$ mkdir hello/module-b herong$ vi hello/module-b/pom.xml
4. Reference the top-level project as "parent" in the module-a pom.xml file:
<?xml version="1.0" encoding="utf-8"?> <project> <modelVersion>4.0.0</modelVersion> <parent> <groupId>herong</groupId> <artifactId>hello</artifactId> <version>1.0.1</version> </parent> <artifactId>hello-mod-b</artifactId> <name>Hello Module B</name> <description>Hello project - Module B</description> <properties> <maven.compiler.source>${source}</maven.compiler.source> <maven.compiler.target>${target}</maven.compiler.target> </properties> </project>
5. Run "mvn" command on the top-level directory. Maven will automatically compile and build all sub-modules:
herong$ cd hello herong$ /Library/Maven/apache-maven-3.6.2/bin/mvn --fail-at-end package [INFO] ------------------------------------------------------------------ [INFO] Reactor Summary for Hello 1.0.1: [INFO] [INFO] Hello ........................................ SUCCESS [ 0.005 s] [INFO] Hello Module A ............................... SUCCESS [ 0.810 s] [INFO] Hello Module B ............................... SUCCESS [ 0.525 s] [INFO] ------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] Total time: 1.436 s
Table of Contents
Macintosh OS (Operating System) History
System and Application Processes
Keychain Access - Password Manager
Keychain Access - Certificate Manager
►Develop and Run Java Applications
Install JDK (Java Development Kit) on macOS
The Simplest Maven Project File
Use "profile" in Maven Project File
►Use "parent" in Maven Project File
Install FOP (Formatting Objects Processor) on macOS