Каковы некоторые дополнительные соглашения о каталогах для проектов Maven? - PullRequest
7 голосов
/ 07 февраля 2009

Maven 2 использует стандартную структуру каталогов для проектов, документированных здесь:

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

Что мне интересно, так это: есть ли рекомендуемые соглашения для других проектов, кроме простой библиотеки Java, проектов Java EE и WebApp? В частности, где разместить файлы ant, сценарии запуска, файлы конфигурации, примеры приложений и т. Д.

Кроме того, каково соглашение о размещении файлов вне дерева каталогов src /? Например, обычно ли помещать документацию в doc / (как родной src)?

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

Ответы [ 2 ]

2 голосов
/ 07 февраля 2009

Основная папка, в которую я помещаю дополнительные файлы конфигурации, находится в каталоге src / main / java / resources. Обычно я создавал подкаталоги там. Тесты могут иметь свои собственные конфигурационные файлы src / test / resources.

Вы можете использовать директивы в разделе сборки файла pom.xml, чтобы указать каталоги дополнительных ресурсов и места для копирования файлов в определенные места в каталоге назначения. Обычно возникает соглашение для языка или структуры, которую вы пытаетесь использовать. В этом случае беспорядок может быть скрыт в родительском pom.xml

См. http://maven.apache.org/pom.html#Resources

1 голос
/ 20 августа 2014

Не думаю, что есть официальный макет для настольных приложений, но это макет, который мы используем для наших.

  • src / main / config - файлы конфигурации, скопированные и отфильтрованные в $ {project.build.directory} /config.
  • src / main / scripts - sh, bat, README и другие текстовые файлы, которые копируются и фильтруются в $ {project.build.directory}.
  • src / main / bin - двоичные файлы, которые не отфильтрованы и скопированы в $ {project.build.directory}.
  • src / main / build - любые дополнительные сценарии, файлы ant или ресурсы, используемые процессом сборки, но не включенные в приложение.
  • src / main / assembly - дескриптор сборки для создания сборки приложения.
  • Скопируйте зависимости в $ {project.build.directory} / lib с помощью плагина maven-dependency.
  • Бонусные баллы, если вы используете совместно используемый jar дескриптора сборки, который включает в себя каталоги config и lib вместе со стандартными типами файлов для совместного использования со всеми вашими проектами. Хороший набор типов файлов по умолчанию для включения - .sh, .bat и .exe с исполняемыми разрешениями; .jar, .zip, .txt, .pdf, .xml, .properties, .conf, .ico, .png, .jpg со стандартными разрешениями.
  • Добавьте каталог config и префикс lib / в classpath, используя плагин maven-jar, чтобы создать исполняемый jar.
  • Добавьте профиль установщика, который создает сборку вашего приложения, используя плагин maven-assembly и ваш дескриптор сборки. При необходимости эта сборка может использоваться отдельным проектом установщика.
  • Избегайте помещать что-либо еще на уровне src /. Вместо этого поместите документацию в каталог src / site / (например, src / site / sphinx) или src / doc, если вам действительно нужно.
  • Поместите все вышеперечисленные конфигурации в родительский / корпоративный pom, чтобы поделиться со всеми вашими проектами. Просто обратитесь к плагинам maven-dependency, maven-resources, maven-jar и maven-assembly в вашем проекте, чтобы создать целое приложение практически без конфигурации (не забудьте установить основной класс для плагина maven-jar) .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...