本文参考于:https://blog.csdn.net/qq_47759220/article/details/119079757
一、maven项目的目录结构pom文件定于了一个maven项目的maven配置,一般pom文件的放在项目或者模块的根目录下。
maven的遵循约定大于配置,约定了如下的目录结构:
4.0.0 com.companyname.project-group project 1.0 jar
- project:整个pom配置文件的根元素,所有的配置都是写在project元素里面的;
- modelVersion:指定了当前POM模型的版本,对于Maven2及Maven 3来说,它只能是4.0.0;
- groupId:组织名,通常为公司域名的倒叙
- artifactId:这是项目的标识,通常是工程的名称,它在一个项目组(group)下是唯一的。
- version:这是项目的版本号,用来区分同一个artifact的不同版本。
- packaging:这是项目产生的构件类型,即项目通过maven打包的输出文件的后缀名,包括jar、war、ear、pom等。
com.companyname.project-group
base-project
1.0.1-RELEASE
../pom.xml
parent元素可以指定父pom。用户可以通过增加parent元素来自定义一个父pom,从而继承该pom的配置。parent元素中包含一些子元素,用来定位父项目和父项目的pom文件位置。
3、项目构建需要的信息和项目构建相关的配置放在 build 标签下
1)路径管理
2)资源管理
3)插件管理
插件管理相关的元素有两个,包括pluginManagement和plugins。pluginManagement中有子元素plugins,它和project下的直接子元素plugins的区别是,pluginManagement主要是用来声明子项目可以引用的默认插件信息,这些插件如果只写在pluginManagement中是不会被引入的。project下的直接子元素plugins中定义的才是这个项目中真正需要被引入的插件。
......
......
4)构建扩展
5)其他配置
build中还有一些配置,如下:
4、项目依赖相关信息
pom文件中通过dependencyManagement来声明依赖,通过dependencies元素来管理依赖。
......
org.apache.maven
maven-artifact
3.8.1
jar
spring-core
org.springframework
true
test
5、生成文档相关元素
备注:maven可以通过mvn site命令生成项目的相关文档。
project-maven
http://123.a.b/nsnxs
Description of this maven project
6、远程仓库列表
远程仓库列表的配置,包括依赖和扩展的远程仓库配置,以及插件的远程仓库配置。在本地仓库找不到的情况下,maven下载依赖、扩展和插件,就是从这里配置的远程仓库中进行下载。
需要注意的是release和snapshot两者的区别。
- release是稳定版本,一经发布不再修改,想发布修改后的项目,只能升级项目版本再进行发布
- snapshot是不稳定的,一个snapshot的版本可以不断改变。项目在开发期间一般会使用snapshot,更方便进行频繁的代码更新
nanxs-repository-proxy
nanxs-repository-proxy
http://192.168.1.169:9999/repository/
default
......
7、项目部署相关
用于把网站部署到远程服务器或者把构件部署到远程仓库
nanxs-maven2
nanxsmaven2
file://${basedir}/target/deploy
nanxs-maven2
Nanxs-maven2 Snapshot Repository
scp://svn.baidu.com/nanxs:/usr/local/maven-snapshot
nanxs-site
business api website
scp://svn.baidu.com/nanxs:/var/www/localhost/nanxs-web
8、报表规范
9、profile配置
Windows XP
Windows
x86
5.1.2600
mavenVersion
2.0.3
/usr/local/abcd/abcd-home/jobs/maven-guide-zh-to-production/workspace/
/usr/local/abcd/abcd-home/jobs/maven-guide-zh-to-production/workspace/



