Erstellen Sie vorerst eine entsprechende `pom.xml
`.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>kagamihoge</groupId>
<artifactId>asdasdf</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>asdasdf</name>
<description>Add project description here</description>
<properties>
<maven.war.filteringDeploymentDescriptors>true</maven.war.filteringDeploymentDescriptors>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
<profiles>
<profile>
<id>hoge</id>
<properties>
<spring_profile_value>hoge_profile</spring_profile_value>
</properties>
</profile>
</profiles>
</project>
Wenn Sie " <maven.war.filteringDeploymentDescriptors> ... </ maven.war.filteringDeploymentDescriptors> "
setzen, wird
maven-war-plugin``` `` web.xml` sein Es wird den Platzhalter ersetzen.
src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>@spring_profile_value@</param-value>
</context-param>
</web-app>
Geben Sie spring.profiles.active an, das im Profil von maven in context-param von web.xml angegeben ist. Im Spring-Boot lautet die Maven-Platzhalterreferenz `@ ... @`
anstelle von $ {...}
.
Wenn Sie danach `` `mvn package -P hoge``` ausführen, sieht die web.xml im generierten Krieg folgendermaßen aus.
web.xml
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>hoge_profile</param-value>
</context-param>
Es ist jedoch auch in den Wie man federaktive Profile mit Maven-Profilen einstellt beschrieben, auf die ich mich bezog. Das Wechseln aktiver Profile auf diese Weise ist jedoch nicht sehr schön. Dies liegt daran, dass für jede Umgebung Kriege mit unterschiedlichen Inhalten erstellt werden, sodass weniger Probleme auftreten, wenn nur eine letzte Binärdatei vorhanden ist.
Trotzdem gibt es in der realen Welt verschiedene Fälle, so dass nicht gesagt werden kann, dass die Spezifikation über web.xml schlecht ist.
Recommended Posts