原文链接 译者:carvendy
jdk1.4项目使用JDK1.5构建指南
你自从Maven 2.2.0 需要 JDK 1.5 来执行,很多用户他们的项目依然使用java 1.4或者更老的版本,他们将需要做一些调整。 理想的情况下,你可以通过使用JDK 1.4编译和测试来解决这个问题,提供适当的工具链配置。无论如何,当前版本编译插件(2.0.2)不是工具链能做的,所以构建一个妥当的构建使用 Maven 2.2.0来构建java面板,比1.5还要老的需要更多其他的配置。
第一步:源码和目标的配置
第一步支持比JDK 1.5更老的在你构建需要的:源码和目标 的API版本为你编译插件而配置。自从JDK 1.5以上 依然可以兼容老的jdk生成class文件,使用默认的编译插件配置将提供项目工件在技术上兼用比1.5更老的版本。 这很好,直到有人偷偷将**String.contains( “foo” )**到代码库。如果发生了,你的项目将构建成功,和生成1.4编译库。但是试着去执行你的代码在1.4JVM中,你将理解为什么编译配置是不足够的。构造一个构建进程设定了JVM 1.4当构建工具依赖的JVM 1.5以上的,与此同时依然确保构建结果是安全的在JVM 1.4上运行的,我们需要可以验证项目代码,与一个给定的java API规范版本的兼容性。
进入动物嗅探
幸运的是,这里一个在dev.java.net的项目叫做动物嗅觉所做的正是我们需要的。这个项目可以用java一系列的 API来验证代码库的兼容性。更好的是,它支持Maven 2.x 插件给用户方便地整合和检查他们的build节点。用JDK 1.4来验证你代码库的兼容性,你容易地让动物嗅觉插件使用:
<signature> <groupId>org.jvnet.animal-sniffer</groupId> <artifactId>java1.4</artifactId> <version>1.0</version></signature>
样本配置
放到一起,跟着例子展示给你怎么样可以确定你的项目将运行在 1.4 JVM
<build> <pluginManagement> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.4</source> <target>1.4</target> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.jvnet</groupId> <artifactId>animal-sniffer</artifactId> <version>1.2</version> <executions> <execution> <id>check-java-version</id> <phase>compile</phase> <goals> <goal>check</goal> </goals> <configuration> <signature> <groupId>org.jvnet.animal-sniffer</groupId> <artifactId>java1.4</artifactId> <version>1.0</version> </signature> </configuration> </execution> </executions> </plugin> </plugins></build>