8

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

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

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

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

是否有编译这些约定的页面?如果没有,其他读者能否提供他们自己项目中的示例?

4

2 回答 2

3

我放置额外配置文件的主文件夹位于 src/main/java/resources 下。通常我在那里创建子目录。测试可以有自己的配置文件 src/test/resources。

您可以使用 pom.xml 的 build 部分中的指令来指定其他资源目录以及将文件复制到目标目录中特定位置的位置。通常,您尝试使用的语言或框架会出现约定。在这种情况下,混乱可以隐藏在父 pom.xml 中

请参阅http://maven.apache.org/pom.html#Resources

于 2009-02-06T21:51:01.677 回答
1

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

  • 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 - 用于创建应用程序程序集的程序集描述符。
  • 使用 maven-dependency 插件将依赖项复制到 ${project.build.directory}/lib。
  • 如果您使用包含 config 和 lib 目录以及与所有项目共享的标准文件类型的共享程序集描述符 jar,则可以加分。要包含的一组好的默认文件类型是具有可执行权限的 .sh、.bat 和 .exe;.jar、.zip、.txt、.pdf、.xml、.properties、.conf、.ico、.png、.jpg 具有标准权限。
  • 使用 maven-jar 插件将 config 目录和 lib/ 前缀添加到类路径以制作可运行的 jar。
  • 添加一个安装程序配置文件,使用 maven-assembly 插件和程序集描述符构建应用程序的程序集。然后,如果需要,该程序集可以由单独的安装程序项目使用。
  • 避免将任何其他内容放在 src/ 级别。如果您确实需要,请将文档放在 src/site/ 目录(例如 src/site/sphinx)或 src/doc 中。
  • 将上述所有配置放在父/公司 pom 中以与您的所有项目共享。只需在项目中引用 maven-dependency、maven-resources、maven-jar 和 maven-assembly 插件即可构建几乎无需配置的整个应用程序(不要忘记为 maven-jar 插件设置主类) .
于 2014-08-20T17:56:49.180 回答