计划是为与 Cloud SQL Postgres 实例协同运行的生产环境创建一个
prod
配置文件。
为此我需要
spring-cloud-gcp-starter-sql-postgresql
依赖:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>
<version>4.1.4</version>
</dependency>
问题:无论我尝试什么,这种依赖似乎都以某种方式注入到 Spring Boot 自动配置链中。
如果我在本地运行服务器,我会得到
Error creating bean with name 'com.google.cloud.spring.autoconfigure.firestore.GcpFirestoreAutoConfiguration':
Unsatisfied dependency expressed through constructor parameter 1:
No qualifying bean of type 'com.google.cloud.spring.core.GcpProjectIdProvider' available:
expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
如果我认为我可以通过为他的依赖选择不同的
<scope>
来解决这个问题,但我尝试过的任何东西都不起作用 - 除了<scope>test</scope>
.
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>
<version>4.1.4</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>dev</id>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>
不过,这当然也不是我想要的
我想做的就是声明
spring-cloud-gcp-starter-sql-postgresql
和not以任何方式影响应用程序,除了某些配置文件,如prod
,被激活。
我试过以下方法:
spring:
cloud:
gcp:
core:
enabled: false
sql:
enabled: false
但我仍然会遇到同样的异常。
有没有办法按照我想要的方式配置它,除了从根目录中删除依赖项?