Maven项目有哪些额外的目录约定?

noa*_*hlz 8 java maven-2 conventions

Maven 2使用项目的标准目录布局,在此处记录:

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

我想知道的是:除了普通的Java库,Java EE和WebApp项目之外,是否有推荐的其他项目约定?具体来说,放置ant文件的位置,启动脚本,配置文件,示例应用程序等.

另外,将文件放在src /目录树之外的惯例是什么?例如,将文档放在doc /(作为src的兄弟)下是否常见?

是否有编译这些约定的页面?如果没有,其他读者可以提供自己项目的例子吗?

Bri*_*ski 1

我认为桌面应用程序没有官方布局,但这是我们使用的布局。

  • src/main/config - 配置文件,复制并过滤到 ${project.build.directory}/config。
  • src/main/scripts - 复制并过滤到 ${project.build.directory} 的 sh、bat、README 和其他纯文本文件。
  • src/main/bin -未过滤并复制到 ${project.build.directory}的二进制文件。
  • src/main/build - 构建过程使用但不包含在应用程序中的任何其他脚本、ant 文件或资源。
  • src/main/ assembly - 用于创建应用程序程序集的程序集描述符。
  • 使用 maven-dependency 插件将依赖项复制到 ${project.build.directory}/lib 。
  • 如果您使用共享程序集描述符 jar(其中包括 config 和 lib 目录以及与所有项目共享的标准文件类型),则会获得加分。一组很好的默认文件类型包括具有可执行权限的 .sh、.bat 和 .exe;具有标准权限的 .jar、.zip、.txt、.pdf、.xml、.properties、.conf、.ico、.png、.jpg。
  • 使用 maven-jar 插件将 config 目录和 lib/ 前缀添加到类路径中以制作可运行的 jar。
  • 添加一个安装程序配置文件,该配置文件使用 maven-assemble 插件和程序集描述符构建应用程序的程序集。如果需要,该程序集可以由单独的安装程序项目使用。
  • 避免在 src/ 级别放置任何其他内容。相反,如果确实需要,请将文档放入 src/site/ 目录(例如 src/site/sphinx)或 src/doc 中。
  • 将以上所有配置放入父/公司 pom 中,以便与您的所有项目共享。只需引用项目中的 maven-dependency、maven-resources、maven-jar 和 maven-assemble 插件即可构建整个应用程序,几乎无需配置(不要忘记为 maven-jar 插件设置主类) 。