У меня есть эти папки в структуре моего проекта
- / src / main / java
- / src / main / resources
In в папке «resources» у меня есть 2 файла: "config.properties"
и "logging.properties"
.
И у меня в поме есть следующее «». xml:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>myapp.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Когда я запустите «mvn clean package», он сгенерирует папку «target» с jar и папкой «classes», содержащей файл свойств, как упомянуто выше.
Чтобы прочитать один из файлов свойств (после нажатия на Кнопка), я использую следующий код:
Properties prop = new Properties();
prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("logging.properties"));
String logFolder = prop.getProperty("myApp.property");
//Do something with 'logFolder'
Работает нормально.
Но если я изменю «myApp.property» в файле «logging.properties», изменение не повлияет на значение «logFolder» .
Что я должен сделать, чтобы иметь возможность динамически изменять значение свойства и заставить мое приложение читать новое значение БЕЗ РЕКОМЕНДАЦИИ ПРОЕКТА ?
Спасибо.