Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven项目的其他目录约定是什么?_Java_Maven 2_Conventions - Fatal编程技术网

Java Maven项目的其他目录约定是什么?

Java Maven项目的其他目录约定是什么?,java,maven-2,conventions,Java,Maven 2,Conventions,Maven 2为项目使用标准目录布局,记录如下: 我想知道的是:除了普通Java库、JavaEE和WebApp项目之外,还有其他项目的推荐约定吗?具体来说,放ant文件、启动脚本、配置文件、示例应用程序等的位置 此外,在src/目录树之外放置文件的约定是什么?例如,将文档放在doc/(作为src的兄弟)下是否很常见 是否有汇编这些约定的页面?如果没有,其他读者能否提供他们自己项目的示例?我放置额外配置文件的主文件夹位于src/main/java/resources下。通常我在那里创建子目录。测

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

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

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


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

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

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


请参见

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

  • src/main/config-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依赖插件将依赖项复制到${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程序集插件和程序集描述符构建应用程序的程序集。如果需要,此程序集可以由单独的安装程序项目使用
  • 避免将任何其他内容置于src/级别。如果确实需要,可以将文档放在src/site/目录(例如src/site/sphinx)或src/doc中
  • 将上述所有配置放在父/公司pom中,以便与您的所有项目共享。只需在项目中引用maven依赖项、maven资源、maven jar和maven程序集插件,就可以构建几乎没有配置的整个应用程序(别忘了为maven jar插件设置主类)

请记住,这些资源目录通常会受到maven的干扰。这可能不是用户可配置属性文件或启动脚本所需的行为。