2010-04-15 207 views
16

在我們的項目中,我們使用jaxb2-maven-plugin從XML Schema生成Java源代碼,這導致我們的Maven模塊需要額外的源代碼目錄(在我們的例子中爲target/generated/main/java)。到目前爲止,我一直在使用Eclipse和maven-eclipse-plugin將所有項目導入Eclipse工作區。該插件(以某種方式)能夠將生成的源代碼自動添加到Eclipse的.classpath文件中。如何配置IntelliJ IDEA和/或Maven自動添加使用jaxb2-maven-plugin生成的Java源代碼的目錄?

最近我嘗試切換到(玩?)的IntelliJ IDEA 9(所以我在這個環境中的新手),我已經注意到,在IDEA的導入過程的其他源目錄中不添加...

有沒有什麼辦法可以配置IDEA/Maven使用生成的源代碼自動導入目錄?

回答

24

與Maven的約定是在target/generated-sources/<tool>來生成代碼,例如target/generated-sources/jaxb2

按照此慣例和IDEA將添加的文件夾作爲源文件夾(見IDEA-53198)。

+1

但是如果我們需要設置自定義值呢?如果該目錄也用於另一個工具進行另一階段,該怎麼辦? 目前,在Eclipse中我們沒有問題,但是我們有IDEA。 – dmatej 2013-06-27 10:47:53

+0

@dmatej可以設置生成源的位置。請參閱http://www.jetbrains.com/idea/webhelp/maven-importing.html上的'生成源文件夾'選項。 – fnt 2014-07-06 13:39:39

+0

務必使用mvn idea:idea以確保在將mvn插件模塊添加到您的POM。 – 2016-06-21 00:56:55

1

試用maven-jaxb2-plugin。如果它不起作用,那就是IDEA問題。

在Maven中,您可以爲每個配置添加新的源根。 Maven插件可以以編程方式執行此操作。這肯定是maven-jaxb2-plugin的情況。那麼,如果IDEA不承認它,那麼這是一個問題。

0

您可以使用Maven Build Helper插件。它位於http://www.mojohaus.org/build-helper-maven-plugin/

它允許配置額外的源根。而IntelliJ的Maven集成將添加新的源代碼。我們在相當多的版本中使用了這個特性,並且工作得很好。測試與vers。 IntelliJ IDEA 13。

2

使用jaxb2-maven-plugin生成的代碼在Intellij 2017.1中缺失,而Eclipse Neon創建了它。 通過選擇'Maven - > Generate Sources and Update Folders'從模塊的上下文菜單中修復它。

相關問題