Maven中的GroupD和ArtifactID以及项目中的目录结构
一,Maven坐标
Maven在世界上拥有数量非常巨大的构建,也就是平时用的一些jar,war等文件。如此众多的组件,就难免会有重名的问题。因此maven引入了坐标的概念。maven定义了 一组规则:
世界上任何一个构件都可以使用Maven坐标唯一标志,maven坐标的元素包括groupID,artifactId,version,package,classifier。只要在pom.xml文件中配置好dependency的groupID,artifactId,version,maven就会从仓库中寻找相应的构建供我们使用。
二,GroupD和ArtifactID
groupId :the unique identifier of the organization or group that created the project
GroupID 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
artifactId :unique base name of the primary artifact being generated by this project
ArtifactID是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
三,命名规则
如果要把项目弄到maven本地仓库中,那项目就必须指定唯一的坐标,即指定唯一的GroupD和ArtifactID。
1,创建maven项目:
2,GroupId一般分为多个段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的GroupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,ArtifactId是tomcat。再比如我自己建项目,可以写com.leon.
3,ArtifactId 是项目名称,比如:apache的tomcat项目,再比如我自己的项目testProj。
四,项目路径
项目建完以后,自动建立如下路径:
根据项目需求,拓展路径如下(为了演示,用的另外一个项目,忽视项目名的差异):
其中java文件夹,mark as Sources Root;resources文件夹,marked as Resources Root
如此,则项目中各种文件的路径如下:
Users类:com.leon.pojo.Prod, ProdMapper中resultType中引用如下,resultType="com.leon.pojo.Users"
MyBatisUtil类:com.leon.util.MyBatisUtil
mybatis-config.xml:就是项目跟目录下mybatis-config.xml.在MyBatisUtil中读取配置文件,语句如下:InputStream is=Resources.getResourceAsStream("mybatis-config.xml");
ProdMapper.xml:mapper\ProdMapper.xml
由上可知,被mark as Sources Root的目录,就相当于项目代码的根目录。同样的,被mark as Resources Root的目录,就相当于资源根目录 。