我从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定义?
答案 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
依赖项。