Как я могу добавить файл в classpath, но не в банку с maven? - PullRequest
1 голос
/ 17 марта 2011

Я хочу добавить некоторые конфиги в classpath (генерируемые maven-jar-plugin), но я не хочу, чтобы они были внутри jar, а во внешней папке. Таким образом я смогу редактировать конфиги без перепаковки. Я нашел одно решение Как добавить запись пути к классу при выполнении приложения с помощью плагина exec , но есть ли менее сложное решение?

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

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

С уважением,

Ответы [ 2 ]

1 голос
/ 17 марта 2011

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

0 голосов
/ 20 апреля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...