我有一个包含两个模块(搜索和用户管理)的存储库。我希望两个模块都有自己的application.properties
。目前我只是想激活一个配置文件,但它不适用。项目结构:
├───pom.xml
├───search
│ ├───src
│ │ ├───main
│ │ │ ├───java
│ │ │ │ └───com
│ │ │ │ └───example
│ │ │ │ └───projectname
│ │ │ │ └───search
│ │ │ │ ├───controller
│ │ │ │ ├───model
│ │ │ │ ├───query
│ │ │ │ └───Main.class
│ │ │ └───resources
│ │ └───test
│ │ └───src
│ ├───pom.xml
│ └───target
├───target
└───usermanagement
├───src
│ └───com
│ └───example
│ └───projectname
│ └───usermanagement
├───test
│ └───src
└───pom.xml
搜索resources
目录有一个应用。以下内容的属性:
spring.profiles.active=dev
这个没有被使用。我必须手动更新我的运行配置文件,并将spring.config.additional-location
与绝对路径传递到application.properties.
<dependencyManagement>
<dependencies>
<!-- Springboot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
<type>pom</type>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test</testSourceDirectory>
<defaultGoal>clean test install</defaultGoal>
</build>
<modules>
<module>search</module>
<module>usermanagement</module>
</modules>
搜索子节点
<dependencies>
<!-- Springboot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Build jar with dependencies -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>main.java.com.example.projectname.search.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
我已经尝试添加src/main/resources
到父级和@ propertscan。
我认为这个问题可以通过制作第三个模块来解决,并将其命名为"Core"这个模块将包含两个扩展模块(搜索和用户管理)共享的所有代码。
这"Core"模块
- 不具备独立构建的能力
- 不包含任何类型的Spring Boot application.run命令
- 没有应用程序。属性文件
"Core"模块然后被导入到两个子项目中,其中任何链接的组件和/或服务都可以通过
加载。@SpringBootApplication(scanBasePackages = "*insert package name here*")
注释。两个扩展模块都有自己的应用程序。属性文件,有自己独立的应用程序启动器和编译"core"和他们自己。
重要的是要注意,为了最容易实现,所有模块都应该具有相似的包结构。
的例子:
Core = "com.epicapp.core">
Search = "com.epicapp.search">
用户管理= "com.epicapp.usermanagement">
基本包= "com.epicapp">
我可以通过将这个添加到父元素
来解决这个问题。<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>