IntelliJ 如何获得构建 |重新构建以从 XSD 文件生成 POJO 并编译它们

问题描述 投票:0回答:2

这个问题特定于 IntelliJ。我还将将此内容发布到 IntelliJ 支持社区网站:https://intellij-support.jetbrains.com/hc/en-us/community/topics。 我使用的是最新版本的 IntelliJ,即 2023.3.4(内部版本 #IU-233.14475.28,构建于 2024 年 2 月 13 日)。

我目前正在使用maven插件com.evolvedbinary.maven.jvnet:jaxb30-maven-plugin:0.15.0
获取 *.XSD 文件并从 XSD 生成 POJO,并将 POJO 编译成类以在我的应用程序中使用。

我的目录结构的片段(出于此问题的目的是):

maven-module1/ 
    src/main/java/org/acme/myapp/Main.java
    src/main/resources/xsd/myData.xsd

运行

mvn clean install
后,XJB插件生成源代码并由maven编译它们并将它们与其他编译的Java文件一起放入target/classes目录中。下面显示了生成的
target/classes
target/generated-sources
目录。

maven-module1/ 
    target/generated-sources/xjc/org/acme/myapp/myData.java 
    target/classes/org/acme/myapp/Main.class
    target/classes/org/acme/myapp/myData.class 

所以我生成的源代码没有放入普通的

src/main/java
子目录中,而是放入目标目录内的子目录中。

    <properties> 
          <maven-jaxb30-plugin-version>0.15.0</maven-jaxb30-plugin-version> 
    </properties> 
 
                <plugin> 
                    <groupId>com.evolvedbinary.maven.jvnet</groupId> 
                    <artifactId>jaxb30-maven-plugin</artifactId> 
                    <version>${maven-jaxb30-plugin-version}</version> 
                    <executions> 
                        <execution> 
                            <goals> 
                                <goal>generate</goal> 
                            </goals> 
                        </execution> 
                    </executions> 
                    <configuration> 
                        <strict>false</strict> 
                        <schemaIncludes>**/xsd/*.xsd</schemaIncludes> 
                        <bindingIncludes>**/xjb/*.xjb</bindingIncludes> 
                        <useDependenciesAsEpisodes>false</useDependenciesAsEpisoes> 
                    </configuration> 
                </plugin> 

如何让IntelliJ使用这个maven插件来生成源代码并编译源代码?

我尝试过的事情

注意:我已经尝试使用 IntelliJ 插件中描述的 https://www.jetbrains.com/help/idea/generate-java-from-xml-schema-using-jaxb-dialog.html

并且发现它有限制(它不允许我进入target/ generated-sources 的输出目录)

我想要实现的是:

  1. 当我切换到新的 git 分支并且
  2. 运行构建 |重建模块“my-module-with-xsds-in-it”,
  3. IntelliJ 生成 POJO 并编译它们。

目前,我的解决方法是从该 Maven 模块目录的命令行运行 Maven clean install,以生成并编译 XSD POJO。

java maven intellij-idea xsd
2个回答
1
投票

您可以进入 Settings > Build > Build Tools > Maven > Runner 并选择 Delegate

此功能的文档位于:https://www.jetbrains.com/help/idea/delegate-build-and-run-actions-to-maven.html#delegate_to_maven

该链接说:

默认情况下,IntelliJ IDEA 使用本机 IntelliJ IDEA 构建器构建 Maven 项目。如果您有纯 Java 或 Kotlin 项目,这可能会有所帮助,因为 IntelliJ IDEA 支持增量构建,可显着加快构建过程。但是,如果您的配置可以动态更改编译,或者您的构建生成具有自定义布局的工件,那么 Maven 更适合构建过程。


0
投票

我从 IntelliJ/JetBrains 技术支持那里得到了以下答案:

无法设置用于文件生成的自定义工具。

URL:https://intellij-support.jetbrains.com/hc/en-us/community/posts/17057858486418-IntelliJ-generate-Java-POJOs-from-XSD-and-compiling-the- generated-code

© www.soinside.com 2019 - 2024. All rights reserved.