作者:oq198608104_765 | 来源:互联网 | 2023-05-16 14:15
我目前正在使用Spring Boot开发REST API.
我是Maven的新手,刚开始用IDEA编写代码(还不知道这个IDE),我有一个问题......
这是我的项目结构:
亲
的pom.xml
主要模块
调节器
域
App.java(Spring Boot主类)
的pom.xml
子模块(需要主模块作为依赖)
控制器
域
的pom.xml
因此,当我在Intellij中运行项目时,它会启动,我可以访问主模块控制器中定义的所有URL.但不是子模块控制器中的那些......看起来只有主模块被加载了.
这是我的父pom.xml:
org.springframework.boot
spring-boot-starter-parent
1.2.1.RELEASE
4.0.0
Test :: Test :: Parent POM
test.test.test
project-parent
0.0.1-SNAPSHOT
pom
1.8
1.8
1.2.1.RELEASE
2.5
java
jacoco
reuseReports
${project.basedir}/../target/jacoco.exec
2.18.1
0.7.3.201502191951
UTF-8
UTF-8
submodule
main
org.apache.maven.plugins
maven-surefire-plugin
${maven-surefire-plugin.version}
true
**/*Test.java
**/*IT.java
**/*Story.java
org.jacoco
jacoco-maven-plugin
${jacoco-maven-plugin.version}
${project.basedir}/../target/jacoco.exec
prepare-agent
org.codehaus.mojo
sonar-maven-plugin
${sonar-maven-plugin.version}
这里是我的主要模块pom.xml:
project-parent
test.test.test
0.0.1-SNAPSHOT
4.0.0
main
Test :: Test :: Main
UTF-8
3.3.2
1.10
3.0.0
4.3.6
3.9.5
1.7.1
org.springframework.boot
spring-boot-starter-data-rest
org.springframework.boot
spring-boot-starter-data-jpa
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-security
com.google.code.findbugs
jsr305
${jsr305.version}
org.apache.commons
commons-lang3
${commons-lang3.version}
commons-codec
commons-codec
${commons-codec.version}
com.h2database
h2
postgresql
postgresql
9.1-901-1.jdbc4
org.apache.httpcomponents
httpclient
${http-commons.version}
test
org.apache.httpcomponents
fluent-hc
${http-commons.version}
test
org.springframework.boot
spring-boot-starter-test
test
org.springframework.data
spring-data-commons
org.jbehave
jbehave-spring
${jbehave.version}
test
org.assertj
assertj-core
${assertj.version}
org.springframework.boot
spring-boot-maven-plugin
这里是子模块pom.xml:
project-parent
test.test.test
0.0.1-SNAPSHOT
4.0.0
submodule
Test :: Test :: Submodule
UTF-8
3.3.2
1.10
3.0.0
4.3.6
3.9.5
1.7.1
test.test.test
main
0.0.1-SNAPSHOT
我认为这是正确的,但不确定......我使用配置在Maven中运行Intellij中的项目:
工作目录是root(不是子模块)
命令行 mvn spring-boot:run -Drun.arguments=--spring.profiles.active=dev -e -pl main
带有parent.main.App的属性start-class
需要你的帮助来配置运行Spring Boot的所有东西,并在IDE中加载所有子模块以用于开发目的......因为我只是不知道我的配置有什么问题!
谢谢 !
1> mhlz..:
您需要告诉SpringBoot在哪里寻找您的控制器.默认情况下,只发生在您的@SpringBootApplication
类的子包中(可能不包括您的子模块).
为了更改您可以@ComponentScan("path.to.package")
用来更改默认包.
此外,您可以使用对子模块中可能存在的类@EntityScan
执行相同操作@Entity
.
如果它们都有一个共同的根包,你可以指定它,它也会扫描所有的子包.