Я хочу использовать небольшую программу в качестве зависимости в моем проекте Maven. Эта программа настраивается файлом свойств, который можно редактировать до его выполнения. До сих пор я добавлял зависимость как JAR в локальный репозиторий.Извлечь файл свойств из JAR-зависимости и использовать его в своем собственном пути к классам
Теперь я хочу, чтобы свойства этой зависимости в файл доступны в моих превосходящих классах, то есть в myprogram/src/main/resources/config/myprogram.properties
и не в myprogram/local-repository/com/example/mydependency/mydependency.jar/mydependency.properties
.
Я попытался изменить часть кода, где определен путь к файлу свойств:
public example() {
Properties prop = new Properties();
InputStream input = example.class.getResourceAsStream("/config/myprogram.properties");
prop.load(input);
...
}
Я также удалил оригинальный файл свойств в зависимости, прежде чем добавить его в свой локальный репозиторий.
Вся программа работает, но не так, как ожидалось. Как ни странно, ни мой новый файл свойств в /src/main/resources/config
, ни старый в mydependency.jar
не используется. Кажется, что какой-то файл свойств по умолчанию помещается в мой окончательный пакет JAR. Но я не могу найти его источник нигде - даже когда я пытаюсь его отладить. Этот файл свойств по умолчанию кажется, кажется, из ниоткуда.
Теперь, как я могу правильно переместить файл свойств зависимостей в свой собственный путь к классам?
И откуда должен отображаться этот файл свойств по умолчанию?
Это проблема с Maven или с самим исходным кодом?
Заранее благодарен!
Это звучит очень странно: ваш локальный репозиторий maven находится в 'myprogram/local-repository'? – JimHawkins
* Это проблема с Maven или с самим исходным кодом? * Моя точка зрения: это проблема вашей концепции. Создание файла свойств и помещение его в путь класса - это не усилие, которое занимает несколько часов ... создайте файл с именем, отличным от имени в зависимости, и поместите его в путь к вашему приложению (arc/main/ресурсы) – JimHawkins
@JimHawkins Да, мой локальный репозиторий maven находится в '' myprogram/local-repository''. Итак, вы имеете в виду, что я должен создать новый файл свойств, который перезаписывает значение в зависимости? Как я могу достичь этого или как программа знает, что я хочу переписать этот конкретный файл, соответственно? – phly