当前位置: 首页 > 知识库问答 >
问题:

Maven build helper插件不包括多模块项目中的源代码

闻人英韶
2023-03-14

我正在用cxf-xjc生成webservice工件,并试图用构建助手插件将它们添加到源代码中。当它在单个Maven项目中使用时,它工作正常,但是现在我已经进入了一个多模块项目,生成的类没有作为源代码包含在内。

类被正确地生成,构建帮助插件在类生成后执行。构建助手的输出显示了类所在的正确的源目录路径,并显示了“添加”。

波姆。xml

<!-- CXF -->
<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-xjc-plugin</artifactId>
    <version>2.3.0</version>
    <executions>
        <execution>
            <id>generate-xsd-sources</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>xsdtojava</goal>
            </goals>
            <configuration>
                <sourceRoot>${basedir}/target/generated-sources/java</sourceRoot>
                <xsdOptions>
                    <xsdOption>
                        <!-- <bindingFile>src/main/resources/request.xjb</bindingFile> -->
                        <xsd>src/main/resources/request.xsd</xsd>
                        <packagename>${services.package}.package.request</packagename>
                    </xsdOption>
                    <xsdOption>
                        <!-- <bindingFile>src/main/resources/response.xjb</bindingFile> -->
                        <xsd>src/main/resources/response.xsd</xsd>
                        <packagename>${services.package}.package.response</packagename>
                    </xsdOption>
                </xsdOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

<!-- Move generated to source -->
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${project.build.directory}/generated-sources/java</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

控制台剪

[INFO] --- **cxf-xjc-plugin:2.3.0:xsdtojava (generate-xsd-sources) @ aggregation-jaxrs-api** ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ aggregation-jaxrs-api ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.0.2:compile (default-compile) @ aggregation-jaxrs-api ---
[INFO] Compiling 55 source files to C:\workspace\aggregation-parent\aggregation-jaxrs-api\target\classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ aggregation-jaxrs-api ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:2.0.2:testCompile (default-testCompile) @ aggregation-jaxrs-api ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ aggregation-jaxrs-api ---
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ aggregation-jaxrs-api ---
[INFO] Building jar: C:\workspace\aggregation-parent\aggregation-jaxrs-api\target\aggregation-jaxrs-api-1.0-SNAPSHOT.jar
[INFO] 
**[INFO] --- build-helper-maven-plugin:1.12:add-source (add-source) @ aggregation-jaxrs-api ---
[INFO] Source directory: C:\workspace\aggregation-parent\aggregation-jaxrs-api\target\generated-sources\java added.**

在我将其移动到模块之前,此配置工作正常。我已经更改为生成源和流程源之间的构建助手阶段,但运气不好。我使用的是基于Eclipse Neon 4.6.1的Spring Tool Suite 3.8。

谢谢

共有1个答案

汲雅珺
2023-03-14

我通过将项目文件夹移动到Eclipse工作区解决了这个问题。它们位于工作区之外,出于某种原因,将项目移动到工作区并重新导入已经修复了一些问题。

 类似资料:
  • 我是IntelliJ和Gradle的新手,我有一个Maven项目,有很多依赖项,它自己工作。现在我应该使用该项目中的库,并在Gradle中为IntelliJ创建一个插件。 我尝试了各种方法在IntelliJ模块设置中添加依赖项,这允许我使用所需的类来编写代码并构建代码。然而,当我试图启动插件时,它再也找不到类了。我想我需要在构建中详细说明这些。但我不明白到底是如何做到的,因为我尝试的所有方法都不起

  • 我有一个多模块的项目,有两个模块:war和ear模块。我正在尝试使用Maven发行版插件来管理发行版。 我的配置到目前为止... 父POM: war模块POM: ear模块POM: 正如您看到的表单日志,test-war-0.0.1-sources.jar正在上传两次。这是为什么?我怎样才能编辑我的配置,使它只上传一次?

  • 是否可以以某种方式配置Spring引导maven插件以包括来自依赖项的资源。 例如,如果在我的spring boot项目中,我有: 在这个JAR文件中有一个属性文件,如 结果1。 但是,当我构建SpringBootJAR时,这个属性文件并没有添加到。包含它的JAR包含在 然而,在我的情况下。我想将的内容提取到Spring BootJAR的引导目录中,这样就可以进行自动配置。 在现实世界中,我试图通

  • 多模块项目具有具有以下依赖关系的模块:web- 我在web模块中添加了sping-boo-gradle-plugin: 当SpringBootGradle插件下载旧的hibernate版本时,我在持久性模块中有重复的版本。 形象 我尝试覆盖web模块中的hibernate依赖项,它正在工作: 形象 为什么插件下载旧的Hibernate版本?是否有任何可能排除旧的Hibernate版本从sping-

  • 在使用Gradle插件和的多模块项目中,正确的Gradle配置是什么样子的? 我有以下项目设置: 模块包含公共项目配置。 模块是一个我希望使用spring-boot-dependencies bom中指定的版本号导入依赖项的模块,但结果是一个标准JAR。 模块是一个依赖于的模块,其结果是一个可执行的spring boot jar文件(包括所有依赖项)。因此,该项目既需要也需要插件。 为了保持Gra