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

发布于 2024-07-13 11:17:56 字数 501 浏览 5 评论 0原文

Maven 2 对项目使用标准目录布局,记录如下:

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

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

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

有没有一个页面可以编译这些约定? 如果没有,其他读者可以提供他们自己项目中的示例吗?

Maven 2 uses a standard directory layout for projects, documented here:

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

What I'm wondering is: are there recommended conventions for other projects besides the plain-vanilla Java library, Java EE and WebApp projects? Specifically, where to place ant files, start scripts, configuration files, sample applications, etc.

In addition, what is the convention for placing files outside of the src/ directory tree? For example, is it common to place documentation under doc/ (as sibling of src)?

Is there a page where these conventions are compiled? If not, can other readers provide examples from their own projects?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

允世 2024-07-20 11:17:56

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

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

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

The main folder I place extra config files in is under src/main/java/resources. Usually I created sub directories under there. The tests can have their own config files src/test/resources.

You can use directives in the build section of the pom.xml to specify additional resources directories and where to copy files to specific places in the target directory. Usually a convention arises for the language or framework you are trying to use. In which case the mess can be hidden in a parent pom.xml

See http://maven.apache.org/pom.html#Resources

时光磨忆 2024-07-20 11:17:56

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

  • 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- assembly 插件和程序集描述符构建应用程序的程序集。 如果需要,该程序集可以由单独的安装程序项目使用。
  • 避免在 src/ 级别放置任何其他内容。 相反,如果确实需要,请将文档放入 src/site/ 目录(例如 src/site/sphinx)或 src/doc 中。
  • 将以上所有配置放入父/公司 pom 中,以便与您的所有项目共享。 只需引用项目中的 maven-dependency、maven-resources、maven-jar 和 maven-assemble 插件即可构建整个应用程序,几乎无需任何配置(不要忘记为 maven-jar 插件设置主类) 。

I don't think there is an official layout for desktop applications, but this is the layout we use for ours.

  • src/main/config - Config files, copied and filtered to ${project.build.directory}/config.
  • src/main/scripts - sh, bat, README and other plain-text files that are copied and filtered to ${project.build.directory}.
  • src/main/bin - Binary files that are not filtered and copied to ${project.build.directory}.
  • src/main/build - Any additional scripts, ant files, or resources used by the build process but not included in the application.
  • src/main/assembly - Assembly descriptor to create application assembly.
  • Copy dependencies to ${project.build.directory}/lib using maven-dependency plugin.
  • Bonus points if you use a shared assembly descriptor jar which includes the config and lib directories along with standard file types to share with all your projects. A good set of default file types to include is .sh, .bat, and .exe with executable permissions; .jar, .zip, .txt, .pdf, .xml, .properties, .conf, .ico, .png, .jpg with standard permissions.
  • Add the config directory and lib/ prefix to the classpath using the maven-jar plugin to make a runnable jar.
  • Add a installer profile that builds an assembly of your application using the maven-assembly plugin and your assembly descriptor. This assembly can then be consumed by a separate installer project if needed.
  • Avoid putting anything else at the src/ level. Instead put documentation inside the src/site/ directory (eg. src/site/sphinx) or src/doc if you really need to.
  • Put all the above configuration in a parent/corporate pom to share with all your projects. Simply reference the maven-dependency, maven-resources, maven-jar, and maven-assembly plugins in you project to build an entire application with almost no configuration (don't forget to set the main-class for the maven-jar plugin).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文