В maven, в чем разница между main / resources и main / config? - PullRequest
42 голосов
/ 15 ноября 2010

Я хочу поместить файл конфигурации в мой проект Maven.Если посмотреть на стандартную структуру каталогов , то есть два места, которые кажутся разумными: "src/main/resources" и "src/main/config".Может ли кто-нибудь объяснить разницу между ними и объяснить, когда вы поместите что-то в config, а когда в resources?

В этом случае файл, который я смотрю, - ehcache.xml, но мойвопрос не специфичен для ehcache, мне любопытно log4j.properties и т. д.

Немного погуглил обнаружил У этого человека был тот же вопрос , но ответы казались противоречивыми и не оченьавторитетным.

Ответы [ 4 ]

51 голосов
/ 15 ноября 2010

Обмен электронной почтой по адресу http://www.mail-archive.com/users@maven.apache.org/msg90985.html говорит:

" Это все теория ..Возможно, при написании документов кто-то, связанный с разработкой Maven, подумал, что может быть полезно иметь каталог src / main / config, и поэтому он был включен в документы, но так как он никогда не был реализован в коде, он не используется сегодня."

и

" Каталог [src / main / config] не отображается на пути к классам, поэтому приложение или тестклассы ничего не могут прочитать в нем."

Так что просто используйте src/main/resources.

Примечание: я не знаю, верно ли это (я задаю вопрос), но это объясняет, почему так много людей в сети рекомендуют src/main/resources для log4j.properties.Если люди согласны с тем, что это правильный ответ, не могли бы вы дать мне знать (прокомментировать или проголосовать)? Я разместил его здесь, чтобы другие люди могли печатать.

8 голосов
/ 15 ноября 2010

scr/main/resources - это место, куда вы помещаете ваши изображения, звуки, шаблоны, языковые пакеты, текстовые и двоичные файлы, используемые исходным кодом. Все конфигурационные файлы, такие как excache.xml, log4j.properties, logback.xml и другие, находятся в src/main/config.

Добавить к вашему pom.xml:

<build>
    <resources>
        <resource>
            <targetPath>.</targetPath>
            <directory>src/main/config</directory>
        </resource>
    </resources>
</build>
5 голосов
/ 29 апреля 2016

Включение src/main/config в Стандартная структура каталогов Maven было удалено частично из-за путаницы между src/main/config и src/main/resources.Этот самый вопрос о переполнении стека фактически упоминается в билете JIRA для удаления src/main/config из стандартного Maven .

Краткий ответ: используйте src/main/resources, а не src/main/configЭто (новый) способ Maven.

0 голосов
/ 24 февраля 2016

Вариант использования довольно прост, если вы спросите меня.(Кажется, с тех пор src / main / config была удалена стандартная схема каталогов)

  • / src / main / resources идут в jar и, таким образом, в classpath
  • / src/ main / config предназначен для сборочного плагина, где вы можете создать zip-файл:

    hello-world.zip
     lib/
      <dependencies>
     bin/
      run.bat
      run.sh
     config/
      config.properies
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...