Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringBootMaven插件:从最终jar中排除属性文件_Java_Maven_Spring Boot - Fatal编程技术网

Java SpringBootMaven插件:从最终jar中排除属性文件

Java SpringBootMaven插件:从最终jar中排除属性文件,java,maven,spring-boot,Java,Maven,Spring Boot,我们有一个Spring引导应用程序,其中既有application.properties,也有application-dev.properties。应用程序属性文件只有一些全面的默认值,而应用程序开发人员属性中有一些真正基本的凭据 当我们部署jar时,应用程序从其部署到的环境中获取其属性,因此,我们不使用概要文件特性,除非我们希望针对“dev”环境进行本地开发 我们的secops部门告诉我们,他们不再希望我们将部署到生产环境中的最终jar中的开发属性文件包括在内,但他们同意我们将该文件保留在版本

我们有一个Spring引导应用程序,其中既有application.properties,也有application-dev.properties。应用程序属性文件只有一些全面的默认值,而应用程序开发人员属性中有一些真正基本的凭据

当我们部署jar时,应用程序从其部署到的环境中获取其属性,因此,我们不使用概要文件特性,除非我们希望针对“dev”环境进行本地开发

我们的secops部门告诉我们,他们不再希望我们将部署到生产环境中的最终jar中的开发属性文件包括在内,但他们同意我们将该文件保留在版本控制中,以便我们至少可以跟踪更改并在本地构建/运行


我一直在阅读spring boot maven插件配置,我看不到一种方法,可以告诉maven在构建最终jar时排除该文件,同时仍将其复制到目标目录中,这样我们的团队仍可以在本地进行黑客攻击。

我在配置文件方面搞了一点混乱,但我发现,这太令人困惑了,无法向其他人解释,而且随着场景的进一步排列,这变得有点麻烦

最终最简单的事情是配置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>

我把概要文件弄得乱七八糟,但我发现它太混乱了,无法向其他人解释,而且随着场景的变化,它变得有点麻烦

最终最简单的事情是配置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>

可能与@jordiburgos重复不完全一样,我仍然希望maven将该文件复制到/target目录中,以便在本地运行应用程序时,可以利用spring的profile特性。我只想将其从生成的包中排除。您可以将文件和概要文件的排除结合起来—一个用于开发,一个用于部署—这是最简单的方法吗?我不介意使用maven概要文件,这肯定会解决问题,但如果我可以说不要将此文件打包到jar中,我宁愿不使用。我们团队中的大多数人都不是很精通CLI,他们更喜欢通过IDE进行各种UI配置,这并不总是一致的。一个开发人员可能会单击一个复选框,然后在一天中的大部分时间里忘记是什么破坏了这个人的构建,直到我们发现他们做了什么。我可能不得不面对现实,但我希望有办法做到这一点。可能是@jordiburgos的重复不完全是,我仍然希望maven将文件复制到/target目录中,这样当我在本地运行应用程序时,我可以利用spring的配置文件功能。我只想将其从生成的包中排除。您可以将文件和概要文件的排除结合起来—一个用于开发,一个用于部署—这是最简单的方法吗?我不介意使用maven概要文件,这肯定会解决问题,但如果我可以说不要将此文件打包到jar中,我宁愿不使用。我们团队中的大多数人都不是很精通CLI,他们更喜欢通过IDE进行各种UI配置,这并不总是一致的。一个开发人员可能会单击一个复选框,然后在一天中的大部分时间里忘记是什么破坏了这个人的构建,直到我们发现他们做了什么。无论如何,我可能不得不面对现实并这样做,但我希望有一种方法可以做到这一点。确切地说,我需要从最终的jar打包中排除application-dev.properties文件,因此在此设置之后,当我从intellij运行应用程序时,会包括开发人员,但当我使用mvn构建时,会排除clean install dev。干得好!!我应该如何排除我的应用程序和应用程序类的某些包?确切地说,我需要从最终的jar包中排除application-dev.properties文件,所以在这个设置之后,当我从intellij dev运行应用程序时,会包括在内,但当我使用mvn构建时,会排除clean install dev。干得好!!我应该如何排除我的应用程序包和应用程序类?