Как я могу добавить файл в путь к классу, но не в банку с Maven?

StackOverflow https://stackoverflow.com/questions/5332865

Вопрос

Я хочу добавить несколько конфигураций в городскую партию (сгенерированную Maven-Jar-Plugin), но я не хочу их внутри банки, а во внешней папке. Таким образом, я смогу редактировать конфигурации без переупаковки. Я нашел одно решение Как добавить запись в классе при выполнении приложения с помощью плагина EXEC Но есть ли менее сложное решение?

Или, может быть, я ошибаюсь, и это плохой шаблон - хранение конфигураций в пути класса, но за пределами банки? Может быть, лучше хранить конфигурации приложений в домашнем каталоге пользователя и добавить их в приложение во время выполнения?

Например, я хочу позволить конечному пользователю редактировать log4j.properties и переводы.

С уважением,

Это было полезно?

Решение

Я бы посоветовал иметь местоположение по умолчанию, которое он ищет конфигурации приложения (например, пользовательский справочник, как вы предложили), но позволяют пользователю предоставить свойство Agrument/System для переопределения этого местоположения. Предполагая, что смотреть на трассу, на мой взгляд, не является лучшим решением, поскольку концепция пути класса является довольно чужой вещью для большинства пользователей и может быть даже трудно определить для некоторых программистов.

Другие советы

Я думаю, что MELV правы - лучше хранить конфигурации в домашнем каталоге и обеспечить возможность менять его, но если кому -то нужно что -то добавить в ClassPath - вы просто можете добавить следующий код в код в код <configuration><archive>.

<manifestEntries>
    <Class-Path>config/</Class-Path>
    <mode>development</mode>
    <url>${pom.url}</url>
</manifestEntries>

Если вы заявите <addClasspath>true</addClasspath>, тогда также будут добавлены дороги зависимости классов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top