- Maven Essentials
- Prabath Siriwardena
- 251字
- 2021-07-30 10:11:27
Convention over configuration
Convention over configuration is one of the main design philosophies behind Apache Maven. Let's go through a few examples.
A complete Maven project can be created using the following configuration file (pom.xml
):
<project> <modelVersion>4.0.0</modelVersion> <groupId>com.packt</groupId> <artifactId>sample-one</artifactId> <version>1.0.0</version> </project>
Note
The Maven POM
file starts with the <project>
element. Always define the <project>
element with the schema. Some tools can't validate the file without it:
<project xmlns=http://maven.apache.org/POM/4.0.0 xmlns:xsi=……… xsi:schemaLocation="…">
The pom.xml
file is the heart of any Maven project and is discussed in detail in Chapter 2, Understanding the Project Object Model (POM). Copy the previous configuration element and create a pom.xml
file out of it. Then, place it in a directory called chapter-01
, and then create the following child directories under it:
chapter-01/src/main/java
chapter-01/src/test/java
Now, you can place your Java code under chapter-01/src/main/java
and test cases under chapter-01/src/test/java
. Use the following command to run the Maven build from where the pom.xml
is:
$ mvn clean install
This little configuration that you found in the sample pom.xml
file is tied up with many conventions:
- Java source code is available at
{base-dir}/src/main/java
- Test cases are available at
{base-dir}/src/test/java
- The type of the artifact produced is a JAR file
- Compiled class files are copied to
{base-dir}/target/classes
- The final artifact is copied to
{base-dir}/target
- http://repo.maven.apache.org/maven2, is used as the repository URL.
If someone needs to override the default, conventional behavior of Maven, then it is possible too. The following sample pom.xml
file shows how to override some of the preceding default values:
<project> <modelVersion>4.0.0</modelVersion> <groupId>com.packt</groupId> <artifactId>sample-one</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <build> <sourceDirectory>${basedir}/src/main/java</sourceDirectory> <testSourceDirectory>${basedir}/src/test/java </testSourceDirectory> <outputDirectory>${basedir}/target/classes </outputDirectory> </build> </project>
- Vue 3移動Web開發與性能調優實戰
- Advanced Machine Learning with Python
- Kubernetes實戰
- Java高并發核心編程(卷2):多線程、鎖、JMM、JUC、高并發設計模式
- 碼上行動:零基礎學會Python編程(ChatGPT版)
- Python爬蟲開發與項目實戰
- Ray分布式機器學習:利用Ray進行大模型的數據處理、訓練、推理和部署
- Mastering Julia
- 編寫高質量代碼:改善C程序代碼的125個建議
- Hands-On C++ Game Animation Programming
- Building Minecraft Server Modifications
- Java項目實戰精編
- 編程數學
- Android底層接口與驅動開發技術詳解
- Visual Basic程序設計上機實驗教程