Maven Enforce要求的最低Java版本

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

执法插件提供目标,以控制某些环境的制约,如Maven的版本,JDK版本和操作系统的家庭多了很多标准规则和用户创建的规则一起。

阅读更多:最新规则集

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

1)创建Maven项目

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

2)添加Maven Actuator 插件

<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

saigon has written 1440 articles

Leave a Reply