0

I would like to know if it is possible to set up a rule that marks a generated sources folder as generated sources root in Intellij Idea automatically.

Usually, Intellij detects the target/generated-sources directory as generated sources. My problem is that I also need it to automatically recognize the directory target/generated as generated sources, which Intellij never did in my case.
This is because of a maven plugin that I use for generating code from XSD schema:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-xjc-plugin</artifactId>
            <version>${cxf.version}</version>
            <configuration>
                <extensions>
                    <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:${cxf.version}</extension>
                </extensions>
            </configuration>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>xsdtojava</goal>
                    </goals>
                    <configuration>
                        <xsdOptions>
                            <xsdOption>
                                <xsd>src/main/resources/schema.xsd</xsd>
                                <packagename>org.example.project.common.request</packagename>
                            </xsdOption>
                        </xsdOptions>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

For some reason, this plugin generates code into the target/generated directory, and not into the target/generates-sources, of which I read that it is the convention and the default from many points of view.

I've tried searching on the web with similar keywords like in the title, but this was the closest solution to what I wanted to achieve. And even this solution doesn't solve my problem because Intellij doesn't allow setting some path patterns; it only offers a few options that don't include target/generated directory.

Another solution suggests changing the target output, which I can't do in every single project I work on; that is not a solution either.

This is important to me because I work with many projects, and sometimes when my code builds with maven but doesn't compile with Intellij I forget to check whether I marked all the generated folders as sources, or I don't even know there are generated sources in the project.

Does someone know a way I can achieve that Intellij automatically detects source files in target/generated directory?

tkalvin
  • 71
  • 1
  • 8
  • Try Settings (Preferences on macOS) | Build, Execution, Deployment | Build Tools | Maven | Importing | **Generated sources folders** option. There is a related request about `cxf-xjc-plugin` support: https://youtrack.jetbrains.com/issue/IDEA-123702/maven-jaxb2-plugin-multiple-schema-wrong-generated-sources-root – Andrey Feb 07 '23 at 07:59
  • @Andrey I've already tried it, I mean to set the path I'd like it to recognize, but there's no such option that would be good for me. I read about this setting in a SO post that I already linked in the question: https://stackoverflow.com/a/72787358 Anyways thanks for the youtrack link! – tkalvin Feb 07 '23 at 16:24

0 Answers0