【发布时间】:2015-04-23 07:55:19
【问题描述】:
我有一个大型 Maven 项目,其中包含一个主模块和许多子模块,以漂亮的树形结构组织。但是,某些模块需要特殊设置,这会导致其他模块出现异常行为。例如,在 Hadoop 上执行操作的模块需要 1.7 的 Java 源级别,所有其他 Java 模块都使用 1.8 的源级别,现在 Scala 模块被引入到使用 scala-maven-plugin 编译的树中,需要特殊设置用于编译混合 Java/Scala 模块时的maven-compiler-plugin。
过去我只是有一个用于 Hadoop 东西的主模块,它定义了 1.7 的源级别并添加了所有必要的 Hadoop 依赖项。现在我想避免为用 Scala 编写的 Hadoop 东西定义另一个主模块,而在 Scala 中为非 Hadoop 东西定义另一个模块。我以为我可以使用配置文件,所以我在我的主 POM 中定义了两个配置文件:
-
java激活maven-javadoc-plugin -
scala不激活maven-javadoc-plugin但maven-scala-plugin并像在 the example from its documentation 中一样配置它
在主 POM 中,java 配置文件默认设置为活动,因为 Java 是默认设置。当项目使用Scala时,我想激活scala配置文件,并停用java,但是将java配置文件的activeByDefault设置为false没有效果,导致编译错误。
那么,有没有一种方法可以启用特定于模块的配置文件,而无需在每个 pom 中手动设置?
【问题讨论】:
标签: maven