在maven中定义其他源目录

时间:2012-05-24 10:09:36

标签: maven intellij-idea code-generation

我从wsdl文件生成Java源代码。这些源不受版本控制(但是wsdl是)。我们在maven中使用cxf-codegen-plugin,生成的类在<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>中生成。

这在maven中运作良好。

我必须将此目录定义为Intelij Idea中的附加源目录。 (target通常被排除在外。)

但每次我将maven项目重新导入InteliJ Idea时(由于pom更改),我必须在Idea中手动编辑项目结构并重新定义添加源目录。

有没有办法可以在maven中定义这个aditional源目录,所以Idea会在重新加载时选择它,或者告诉Idea不要忘记手动源的directoy定义?

3 个答案:

答案 0 :(得分:11)

此案例在IntelliJ IDEA Maven FAQ生成的来源部分中进行了描述:

  

重新导入项目时指定源根目录   您可以选择以下选项之一:

     
      
  • 自动检测这是默认选项。选择此选项时,IntelliJ IDEA会自动检测生成的源的位置。 IntelliJ IDEA还会检测要标记为源根目录的目录。但是,IntelliJ IDEA仅在target / generated-sources和target / generated-sources / *目录中搜索生成的源。

  •   
  • target / generated-sources此选项使您可以手动将目录标记为源根目录。

  •   
  • “target / generated-sources”的子目录此选项使您可以手动将子目录标记为源根目录。

  •   
  • 不检测此选项可让您跳过检测过程。

  •   

答案 1 :(得分:5)

查看<add-source>构建目标(请参阅示例here

引用:

<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>build-helper-maven-plugin</artifactId>
 <version>1.4</version>
 <executions>
  <execution>
   <id>add-wsdl-source</id>
   <phase>generate-sources</phase>
   <goals>
    <goal>add-source</goal>
   </goals>
   <configuration>
    <sources>
     <source>${basedir}/src-generated/src</source>
    </sources>
   </configuration>
   <!-- [...] -->
  </execution>
 </executions>
</plugin>

答案 2 :(得分:0)

您可以将(外部)源目录定义为模块的依赖项。 Project Structure -> Modules -> Depenencies。在那里,您必须添加新的JAR or Directory依赖项。