15

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

这在 Maven 中一切正常。

我必须将此目录定义为 Intelij Idea 中的附加源目录。(target通常不包括在内)。

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

有什么办法可以在 maven 中定义这个额外的源目录,以便 Idea 在重新加载时将其拾取,或者告诉 Idea 不要忘记手动源目录定义?

4

3 回答 3

15

IntelliJ IDEA Maven FAQ , Generated Sources部分描述了这种情况:

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

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

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

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

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

于 2012-05-24T13:16:41.183 回答
5

看看构建目标(参见此处<add-source>的示例)

引用:

<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>
于 2012-05-24T10:17:39.297 回答
1

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

于 2012-05-24T10:17:41.597 回答