我有spring boot的申请。我需要将spring boot配置文件连接到maven配置文件,所以当我调用命令时
mvn clean install -Pdev
或
mvn clean install -Pprod
它应该调用spring boot加载application-dev.yml或application-prod.yml。当我打电话的时候
mvn clean install
它应该在启动之前调用application-dev.yml文件。因此需要从2个命令调用spring boot开发配置文件。我有一个问题,每次我切换配置文件,它从默认配置文件构建应用程序。所以你能帮我把maven和spring boot的资料。这是我的pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<profiles>${spring-profiles}</profiles>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<spring-profiles>dev</spring-profiles>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<spring-profiles>prod</spring-profiles>
</properties>
</profile>
</profiles>
下面是application.yml示例。
spring:
devtools:
restart :
enabled: true
livereload:
enabled: false
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
database: MYSQL
show_sql: true
properties:
hibernate.cache.use_second_level_cache: true
hibernate.cache.use_query_cache: false
hibernate.generate_statistics: true
hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
hibernate:
ddl-auto: update
server:
port: 8080
compression:
enabled: true
mime-types : application/json,application/xml,text/html,text/xml,text/plain,application/javascript,text/css,text/html
session :
timeout : 540000
mail:
smtp:
starttls.enable: true
auth: true
port: 587
activation:
expiration.hours: 24
template: /mails/activationEmail.html
change-password:
template: /mails/passwordResetEmail.html
application-dev.yml和application-prod.yml之间的区别仅在端口。以便仅在部署之前更改mvn配置文件时更改端口。
我不了解你想要的一切,但你有两个选择让一些东西工作。
首先,在您的maven配置文件中,您可以设置一个默认配置文件:
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
因此不需要为mvn clean install
提供maven配置文件
另一种选择是为配置文件设置变量,并在构建应用程序时将这些值添加到application.properties
文件中。
例如,对于您的端口,您可以这样做:
<profile>
<id>dev</id>
<properties>
<serverPort>9999</serverPort>
</properties>
</profile>
在application.properties文件中,您可以使用@serverport
获得值:
server.port=@serverPort@
如果您现在通过使用任何配置文件构建应用程序,您将获得maven配置文件中设置的值。
问题内容: 我正在尝试使用Maven 3 在Spring Boot应用程序中设置活动配置文件。在我的pom.xml中,将默认的活动配置文件和属性spring.profiles.active设置 为development: 但是每次我运行应用程序时,都会在日志中收到以下消息: 并且将SpringBoot配置文件设置为默认值(读取application.properties而不是application
问题内容: 我正在使用不同的Maven配置文件将我的应用程序部署到不同的环境。(使用weblogic-maven-plugin,但是我认为这并不重要) 在应用程序中,我使用Spring Web Services。现在,我想根据环境更改端点。(端点在Spring的applicationContext.xml中定义) 我的想法是从属性文件中读取值。该属性文件将在Mavens软件包阶段写入(或复制)。
我正在尝试将我的应用程序配置为具有两个构建配置文件:开发和生产。为此,我在src/main/resources文件夹下创建了两个子目录:src/main/resources/development和src/main/resources/production。每个子目录都有自己的。属性文件。 我使用命令mvn install-P${profile_here}构建应用程序 Maven将与所选配置文件相
我正在将一个现有的项目(遗留)移到Maven。其结构如下: 我打算有两个不同的概况:生产和开发。在production profile中,/warmodule/src/main/resources/prod/index.jsp应该组装到views/war目录中。在开发概要文件中,/warmodule/src/main/resources/dev/index.jsp应该复制到views/war目录中
问题内容: 我有一个使用maven作为构建工具的应用程序。 我正在使用Maven配置文件从不同的配置文件设置不同的属性。 我想做的是将maven中的所有活动配置文件也移植到spring活动配置文件中,以便我可以在bean签名()中引用它们。但我不确定该怎么做。 例如:考虑以下Maven设置 假设我在未指定任何其他配置文件的情况下运行maven,而我希望spring具有和 配置为活动配置文件。 问题
我有一个用maven作为构建工具的应用程序。 我正在使用maven概要文件从不同的概要文件设置不同的属性。 假设我运行带有out的maven,并指定我希望spring的任何其他概要文件,将和作为活动概要文件。