如何在日食到战争文件中包含 maven 环境变量



我的应用程序中有环境变量spring.mail.username=${username}

${username}在 eclipse 环境变量中声明。当我构建 maven 包并安装时,然后将其部署到 tcServer。TC 服务器不知道${username} 。换句话说,在构建过程中,环境变量不包含在 war 文件中。

如何让 eclipse 中的环境变量包含在战争文件中以进行部署?

按照alexbt的答案使用Maven过滤,是包含其他地方定义的值的正确方法。他的示例涉及包含操作系统环境变量。您也可以将其扩展到 Maven 属性。例如

<project ...>
   <properties>
      <spring.mailuser>bob@mycompany.com</spring.mailuser>
   </properties>
   ...
   <build>
      ...
   </build>
</project>

定义一个 Maven 属性,其值由${spring.mailuser}检索并可用作部分其他 Maven 配置或通过 Maven 过滤注入为内容。鉴于此,改变 applicable.properties如下

 spring.mail.username=${spring.mailuser}

将在生成时注入属性的值。

如果您希望替换构建时变量,我建议您使用 maven 过滤:

有一个环境变量(不是日食变量):

export username=user3184890

然后,在你的pom.xml中,激活对资源的maven过滤(假设你的application.properties在src/main/resources

<build>
    <resources>
        <resource>
            <directory>${project.basedir}/src/main/resources</directory>
                <filtering>true</filtering>
        </resource>
    </resources>
...

此外,将 application.properties 更改为以下内容:

spring.mail.username=${env.username}

spring.mail.username=@env.username@

最新更新