我有一個大的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