“Maven最佳实践之一个好的parent依赖基础”是指在使用Maven构建项目时,良好的父依赖是保证项目构建质量、维护成本及后期升级的重要因素。下面我将详细讲解“Maven最佳实践之一个好的parent依赖基础”的完整攻略。
什么是一个好的parent依赖
一个好的parent依赖应符合以下原则:
- 遵循单一职责原则:父依赖只应提供共通性的配置和依赖,而不应该包含任何业务相关的配置和依赖。
- 从简原则:尽可能精简父依赖的配置和依赖,保证它足够通用化。
- 自我完备原则:保证父依赖足够完备,即所有子项目使用父依赖之后,不应该再引入额外的依赖。
- 易于维护和升级:保证父依赖易于维护和升级,不会因多项目和多模块而导致混乱。
如何定义一个好的parent依赖
可以通过以下方案来定义一个好的parent依赖:
声明版本和依赖管理
在父依赖的pom.xml中声明版本和依赖管理,如下所示:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
定义插件
在父依赖的pom.xml中定义常用的插件及其版本,如下所示:
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</project>
定义通用插件配置
在父依赖的pom.xml中定义常用插件的通用配置,以避免重复配置,如下所示:
<project>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<compilerArgs>
<arg>-Xlint:deprecated</arg>
<arg>-Xlint:unchecked</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<systemPropertyVariables>
<someKey>someValue</someKey>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
示例
示例一:创建父依赖
创建一个新项目,作为父依赖,用于管理通用依赖和配置。在该项目的pom.xml文件中就可以进行如上述步骤的配置。
示例二:使用父依赖
在新项目中引入父依赖,如下所示:
<project>
<parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-project</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
这样,新项目就能够继承父依赖的配置和依赖,从而保证项目的质量和维护成本。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Maven最佳实践之一个好的parent依赖基础 - Python技术站