Maven Project构建了由不同java版本编译的额外jar

时间:2011-11-22 22:11:48

标签: java maven-2

我的主要项目是使用java 1.6,我需要为只能在java 1.5上运行的系统提供客户端jar。客户端jar是一个单独的模块,所以我可以在maven-compiler-plugin中指定java版本。但是,客户端jar依赖于核心jar,它位于1.6。

的一种方法

我在maven-jar-plugin中使用了“test-jar”目标来生成一个测试jar供其他模块使用。我希望做类似的事情,并在我的客户端模块中使用它具有以下依赖项:

<dependency>
    <groupId>org.mygroup</groupId>
    <artifactId>module-core</artifactId>
    <classifier>java1_5</classifier>
</dependency> 

1 个答案:

答案 0 :(得分:0)

为什么您的客户项目取决于核心?

如果它使用核心代码,你显然也需要为1.5编译核心JAR。你有几个选择:

  1. 将目标全局设置为1.5并确保您的代码中没有使用1.6 JDK内容(至少在JDK 1.5上客户端调用的代码部分中)。
  2. 使用配置文件+分类器为不同的JDK(see this question)生成工件。但是,您必须多次运行构建。实际上,每个构建都将使用相同的-target版本编译所有内容,因此这种方法只是1)的一点改进,允许您为多个JDK版本发布工件。
  3. 如果客户端代码实际上不使用核心(例如,它仅使用来自核心的WSDL或其他非Java东西),则可以通过将内容移动到单独的“共享”模块来消除此依赖关系。