Spring Boot Maven插件:从最终的jar中排除属性文件

时间:2019-03-21 18:27:26

标签: java maven spring-boot

我们有一个Spring Boot应用程序,其中有一个application.properties和一个application-dev.properties。应用程序属性文件仅具有一些全面的默认值,而application-dev属性中具有一些真正的基本凭据。

在部署jar时,应用程序会从部署环境中获取其属性,因此,除非要针对'dev'环境进行本地开发,否则我们不会利用配置文件功能。

我们的secops部门告诉我们,他们不再希望我们从部署到生产中的最终jar中包含该dev属性文件,但是他们可以将文件留在版本控制中,这样我们至少可以跟踪更改并在本地构建/运行。

我一直在阅读spring-boot-maven-plugin的配置,在构建最终jar的同时仍然将其复制到{{1} }目录,以便我们的团队仍然可以在本地进行黑客入侵。

1 个答案:

答案 0 :(得分:0)

我弄乱了配置文件,但是我发现它太混乱了,无法向其他人解释,并且随着场景的其他排列的出现变得有点麻烦。

最简单的方法是配置jar插件以排除文件。这是我们pom的摘录。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.1</version>
            <configuration>
                <excludes>
                    <!-- This is where the exclusion occurs -->
                    <exclude>**/application-*.properties</exclude>
                </excludes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>