Spring Tool Suite / Maven删除我的.properties文件

时间:2017-05-04 18:37:30

标签: java spring maven

我是一个相对新手,我正在尝试构建一个接受外部配置文件的应用。我用spring工具套件编写它并用Maven编译它。

我有一个src / main / java文件夹,其中包含包含所有类的包以及生成.jar文件的目标文件夹。

我试图在外部配置上使用他们的指南:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

我将在./target中创建/ config文件,然后右键单击>新>我将命名" application.properties。"一旦我尝试与它进行交互,我立即警告这是一个派生文件。

在application.properties中,我把:

spring.application.name = "hello"

在文件结构中其他地方的静态类中,我把:

@Value("${name}")
public static String name;

当我打包并运行.jar时,它不仅无法检索name属性,而且.properties文件有时会删除/ config文件夹!

我为了让Maven删除我的.properties文件而中断了什么?

4 个答案:

答案 0 :(得分:0)

你必须在WEB-INF文件夹中创建属性文件,并将属性文件路径和bean配置为ApplicationContext.xml

<bean id="configProperties"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

    <property name="location" value="WEB-INF/test-config.properties" />

</bean>

答案 1 :(得分:0)

如果您在target文件夹中创建文件,则会不时删除该文件。目标文件夹中的内容由Maven不时销毁/创建,因为它的目标是包含构建的结果。当您通过示例发出clean package命令时,Maven将销毁target中的内容,然后重建您的应用。

我相信您应该在scr/main文件夹中创建属性文件,以便将其保留在项目中,但是您必须弄清楚属性文件在应用程序的类路径中的可见性

由于您正在运行jar,因此可以在java命令行中添加一个参数(尝试检查IDE中的运行配置),添加将保留属性文件的文件夹。

答案 2 :(得分:0)

将文件放入目标文件夹确实会删除它们。

答案 3 :(得分:0)

当我从插件中删除配置部分时,它停止删除 application.properties 文件

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <addResources>true</addResources>
    </configuration>
</plugin>

然后我有了这个:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>