Maven 强制最低 Java 版本

Maven 强制最低 Java 版本

原文: https://howtodoinjava.com/maven/how-to-enforce-operating-system-and-minimum-java-version-using-maven-enforcer-plugin/

很多时候,如果部署环境没有特定的操作系统,或者它不包含最低要求的 Java 版本,我们需要强制 Java 构建过程应立即停止。 如果您正在使用 maven 进行构建,则可以使用 maven 强制执行器插件轻松配置这些限制。

强制执行器插件提供了控制某些环境约束的目标,例如 Maven 版本,JDK 版本和 OS 系列以及更多标准规则和用户创建的规则。

阅读更多:最新规则集

让我们通过一个例子来看看如何使用这个插件:

1)创建 Maven 项目

$ mvn archetype:generate 
		-DgroupId=com.howtodoinjava 
		-DartifactId=EnforceJavaVersionDemo
		-DarchetypeArtifactId=maven-archetype-quickstart 
		-DinteractiveMode=false

2)添加 Maven 执行器插件

<build>
	<plugins>
		<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-enforcer-plugin</artifactId>
		<version>3.0.0-M2</version>
		<executions>
			<execution>
			<id>enforce-versions</id>
			<goals>
				<goal>enforce</goal>
			</goals>
			<configuration>
				<rules>
					<requireMavenVersion>
						<version>2.0.6</version>
					</requireMavenVersion>
					<requireJavaVersion>
						<version>1.5</version>
					</requireJavaVersion>
					<requireOs>
						<family>unix</family>
					</requireOs>
				</rules>
			</configuration>
			</execution>
		</executions>
		</plugin>
	</plugins>
</build>

在这里,所需的依赖项是操作系统是 linux,maven 版本是 2.0.6,而 Java 版本是 1.5。 我在 Windows 机器上运行此代码,因此,上面的pom.xml文件应兼容操作系统。

3)演示

版本不匹配的项目进行编译。

$ mvn compile

编译失败,并出现以下错误。

[INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-versions) @ EnforceJavaVer
sionDemo ---
[WARNING] Rule 2: org.apache.maven.plugins.enforcer.RequireOS failed with messag
e:
OS Arch: amd64 Family: windows Name: windows 7 Version: 6.1 is not allowed by Fa
mily=unix
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.000s
[INFO] Finished at: Tue Jan 08 11:03:01 IST 2013
[INFO] Final Memory: 7M/132M

同样,如果我用 3.0.6 更新了 Maven 最低要求,而我的 Maven 版本是 3.0.4,则它会这样抱怨:

[INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-versions) @ EnforceJavaVer
sionDemo ---
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireMavenVersion failed w
ith message:
Detected Maven Version: 3.0.4 is not in the allowed range 3.0.6.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.000s
[INFO] Finished at: Tue Jan 08 11:03:01 IST 2013
[INFO] Final Memory: 7M/132M

您也可以测试最低的 Java 版本。

学习愉快!

参考: http://maven.apache.org/enforcer/maven-enforcer-plugin/usage.html