2016-06-26 64 views
0

我正在使用maven構建一個項目,我需要確保它可以在Java SE和不同的Java EE容器上運行。已經有爲WildFly容器編寫的集成測試。現在我正在轉向Java SE。如何處理maven中的多個測試環境?

但是面對這個多重測試環境,我該如何在maven中處理它們呢?我應該使用<profile><module>還是別的?

  • <profile>是不同的配置文件和它們中的每之間切換可以有自己特定的依賴關係是有用的。所以在我的情況下,可能有配置文件:wildfly-embedded,wildfly-managed,java-se等,但我需要確保項目在每個配置文件上工作,是否有可能在一個命令中運行所有配置文件?

  • <module>可以處理項目繼承。在閱讀SO • Why and when to create a multi-module Maven project?之後,我仍然對我是否應該使用它感到困惑。

有人可以給我一些想法嗎?這將是非常有益的,謝謝。

回答

1

如果你記住,無論激活的配置文件,最終產生的工件應該總是相同的,那麼你應該明白配置文件不是正確的解決方案(儘管它經常被濫用,不要嘗試去看看這個建議!) 配置應該在工件之外,所以你可以重複使用相同的工件。由於許多人要求嵌入式配置的正確解決方案,Karl Heinz創建了https://github.com/khmarbaise/multienv-maven-plugin。這可能是最接近有效的Maven項目設置的。

+0

感謝您的建議@RobertScholte。我同意你的個人資料,所以我會避免使用它。至於Karl Heinz的項目,這是一個有趣的插件,但我正在尋找本地的東西,沒有額外的「依賴」。 –

+0

你是什麼意思的額外「依賴」? – khmarbaise

+0

我想這是關於附加/分類的工件。在這種情況下,你需要讓Maven只做建築部分。讓進行測試的進程(例如Jenkins)負責嵌入正確的配置。 –