Spring boot 如何在构建bootJar时在Spring引导上设置活动配置文件?

Spring boot 如何在构建bootJar时在Spring引导上设置活动配置文件?,spring-boot,Spring Boot,如何仅为通过调用bootJar任务构建的可执行文件(jar)设置概要文件?理想情况下,它会覆盖(或添加)jar中application.properties或类似内容中的属性。您可以在spring引导应用程序的application/bootstrap.properties文件中提供spring.profiles.active=dev,mysql。 或者在运行jar时,您可以将活动概要文件作为参数提供 java -jar fatJar.jar --spring.profiles.active=d

如何仅为通过调用bootJar任务构建的可执行文件(jar)设置概要文件?理想情况下,它会覆盖(或添加)jar中application.properties或类似内容中的属性。

您可以在spring引导应用程序的application/bootstrap.properties文件中提供spring.profiles.active=dev,mysql。 或者在运行jar时,您可以将活动概要文件作为参数提供

java -jar fatJar.jar --spring.profiles.active=dev,mysql

您可以在spring引导应用程序的application/bootstrap.properties文件中提供spring.profiles.active=dev,mysql。 或者在运行jar时,您可以将活动概要文件作为参数提供

java -jar fatJar.jar --spring.profiles.active=dev,mysql

我想他正试图做我们现在做的事。在maven中,人们可以按照以下思路做一些事情:


openshift
openshift
可用于替换application.properties中的
@activatedProperties@
,例如openshift。如果是这种情况,我们通过修改build.gradle解决了它,如下所示:

import org.apache.tools.ant.filters.ReplaceTokens

# whatever you have here

def springProfile = project.hasProperty("profile") ? profile : ""
bootRun {
    systemProperties["spring.profiles.active"] = springProfile
}

processResources {
    with copySpec {
        from "src/main/resources/"
        filter(ReplaceTokens, tokens: ["activatedProperties": springProfile])
    }
}
并且在application.properties中有:

spring.profiles.active=@activatedProperties@

然而,我想指出的是,我们认为这是暂时的黑客行为。构建脚本不应该修改文件,即使它仅限于资源文件。更正确的方法是在单独的位置使用模板,并将其输出到资源中。或者更好(这是我们将在适当的时候做的),修复部署设置,因此它是部署配置的一部分,应该如此。

我希望他正试图做我们所做的事情。在maven中,人们可以按照以下思路做一些事情:


openshift
openshift
可用于替换application.properties中的
@activatedProperties@
,例如openshift。如果是这种情况,我们通过修改build.gradle解决了它,如下所示:

import org.apache.tools.ant.filters.ReplaceTokens

# whatever you have here

def springProfile = project.hasProperty("profile") ? profile : ""
bootRun {
    systemProperties["spring.profiles.active"] = springProfile
}

processResources {
    with copySpec {
        from "src/main/resources/"
        filter(ReplaceTokens, tokens: ["activatedProperties": springProfile])
    }
}
并且在application.properties中有:

spring.profiles.active=@activatedProperties@

然而,我想指出的是,我们认为这是暂时的黑客行为。构建脚本不应该修改文件,即使它仅限于资源文件。更正确的方法是在单独的位置使用模板,并将其输出到资源中。或者更好(这是我们将在适当的时候做的),修复部署设置,这样它就应该成为部署配置的一部分。

这看起来是可以工作的。问题是它不是一个服务器应用程序,它是一个面向用户的JAR,所以我想把所有东西(包括配置)捆绑在JAR中,这看起来是可以工作的。问题在于它不是一个服务器应用程序,而是一个面向用户的JAR,所以我想把所有东西(包括配置)捆绑在JAR本身中。