我有一个大的Maven项目,有一个主模块和很多孩子,组织在一个漂亮的树形结构中。但是,某些模块需要特殊的设置,这会导致其他模块中的错误行为。例如,在Hadoop上有些模块需要Java源代码级别为1.7,所有其他Java模块使用1.8级别的源代码级别,现在Scala模块引入到此树中,该代码使用scala-maven-plugin
进行编译,这需要maven-compiler-plugin
的特殊设置编译混合Java/Scala模块时。如何激活每个pom.xml的Maven配置文件?
在过去,我只是有一个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
,但将activeByDefault
设置为false
对于java
配置文件没有任何影响,导致编译错误。
那么,有没有办法启用特定于模块的配置文件,而无需在每个pom中手动设置?
这意味着,当我有模块, B和C,A和B使用Java配置文件,C使用Scala,我必须将这些配置文件分别添加到所有模块中? – rabejens