Как я могу получить свой ресурс ClassLoader для использования моих свойств maven?
У меня есть BaseTask
в Java EE, который предоставляет URL для других классов. Этот URL-адрес изменяется в зависимости от того, dev
, test
или же prod
,
В моем src/main/resources
У меня есть файл с именем server.properties
, Этот файл имеет одну запись, например:
urls.main=${urls.main}
Далее у нас есть три файла с именем dev.properties
, test.properties
а также prod.properties
находится в src/main/filters
,
Каждый из этих файлов имеет одну запись, но, например, dev.properties
содержит запись типа:
urls.main=http://localhost/somepath
Теперь у меня есть следующие настройки в моем pom:
<profiles>
<profile>
<id>dev</id>
<build>
<filters>
<filter>src/main/filters/dev.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</profile>
... repeat for "test.properties" and "prod.properties"...
</profiles>
Хорошо, теперь я могу выполнить следующее:
mvn -Pdev package
и EAR
файл строится вместе с server.properties
файл с записью в нем, как:
urls.main=http://localhost/somepath
Таким образом, фактический файл отображается правильно в файле EAR. Но когда я пытаюсь загрузить свойство из Java, он использует ${urls.main}
вместо.
Код, который я использую в Java для загрузки свойства:
private static final String getURL() {
String url = "";
try {
url = getProperty("urls.main"); // returns "${urls.main}" instead of http://localhost/somepath
} catch (IOException ex) {
ex.printStackTrace();
}
return url;
}
Я уверен, что упускаю что-то глупое, но что я делаю не так?
Благодарю.
РЕДАКТИРОВАТЬ
Кстати, это не весь код, я закрываю потоки и т. Д. Я просто не опубликовал все, чтобы облегчить чтение сообщения.:-)