Spring Boot 如何将一个maven模块生成的包导入到另一个maven模块中?

w9apscun  于 2023-03-18  发布在  Spring
关注(0)|答案(1)|浏览(211)

对于上下文,我有一个maven项目,它包含2个模块,即3个poms文件,一个用于父模块,另两个用于查尔兹。我的问题是为第二个模块创建一个jar,该模块使用第一个模块生成的类。第一个模块使用openAPI从yaml生成类,这些类用于第二个模块,该模块是一个Spring Boot 应用程序。
当我执行mvn clean install时,在我的整个项目上,或者在第二个模块上,它说它找不到符号,符号是第一个模块生成的类。当我尝试通过Sping Boot 运行时,它工作正常,创建jar并执行。这是父项目的pom,这是我定义模块顺序的方式(我看到指定每个模块首先编译是很重要的)。

<modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <modules>
        <module>api-generation</module>
        <module>stock-keeping-logic</module>

    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
 
</project>

这是第二个模块中的依赖项

<dependencies>
        <dependency>
            <groupId>com.pss.api</groupId>
            <artifactId>api-generation</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

这是我在第一个模块中用来生成类的插件:

<plugins>
            <plugin>
                <groupId>org.openapitools</groupId>
                <artifactId>openapi-generator-maven-plugin</artifactId>
                <version>6.4.0</version>
                <executions>
                    <execution>
                        <id>spring-boot-api</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <inputSpec>${project.basedir}/src/main/resources/static/api-docs.yaml</inputSpec>
                            <generatorName>spring</generatorName>
                            <configOptions>
                                <dateLibrary>joda</dateLibrary>
                                <useSpringController>true</useSpringController>
                                <interfaceOnly>true</interfaceOnly>
                                <sourceFolder>src/main/java</sourceFolder>
                            </configOptions>
                            <library>spring-boot</library>
                            <apiPackage>com.api.generation</apiPackage>
                            <modelPackage>com.api.generation.model</modelPackage>
                            <invokerPackage>com.api.generation.handler</invokerPackage>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
           
        </plugins>

我在谷歌上搜索了一下解决方案,但找不到任何有用的东西。

8cdiaqws

8cdiaqws1#

如果使用spring-boot-starter-parent,您将创建Sping Boot JAR,而不是库,Spring boot JAR不会作为现成的依赖项工作。

相关问题