创建工件的子集

时间:2014-04-13 10:24:32

标签: maven maven-3

我有一个maven项目,我需要从中为所有类生成一个用Java 7编译的jar文件,以及用Java 6编译的类子集的另一个jar文件。我知道我应该生成一个工件pr项目什么是最好的分裂到达到我的目标?

1 个答案:

答案 0 :(得分:1)

如果你必须运行两个单独的构建来生成两个工件,这对你有用吗?如果没有,您可以使用Maven profiles轻松实现此目的。您可以设置每个JDK配置文件以生成具有不同分类器的工件,以区分它们。

就个人而言,我不想为此使用配置文件。两种替代方法是使用具有插件定制的单个Maven模块来执行两组独立的编译和工件打包操作,或者移动到基于目标JDK的显式分离的多模块Maven构建。 (例如,请参阅this answer。)前者会使pom.xml难以维护,但会导致单个整理器结构。您可能会发现花费大量时间调整包含/排除以指定每个工件的内容。后者会导致更复杂的项目结构,但毫无疑问哪些源文件会进入哪种工件。

惯用正确的Maven方法是将您的代码库拆分为一个多模块项目,该项目具有单独的Java 6和7模块,每个模块都有自己的pom.xml。每个都可以指定不同的源/目标版本,并且只包含适当的源文件。 Java 7模块可以依赖Java 6类并将其重新封装到自己的工件中(使用dependency / assembly插件),甚至可以直接使用相对路径引用Java 6模块的源代码。