对于上下文,我有一个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>
我在谷歌上搜索了一下解决方案,但找不到任何有用的东西。
1条答案
按热度按时间8cdiaqws1#
如果使用
spring-boot-starter-parent
,您将创建Sping Boot JAR,而不是库,Spring boot JAR不会作为现成的依赖项工作。