博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java1234初学maven
阅读量:6495 次
发布时间:2019-06-24

本文共 13427 字,大约阅读时间需要 44 分钟。

 

第一讲:

maven    maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。maven安装与下载:    1、确定jdk已经安装并且配置    2、安装maven    3、配置maven环境变量:M2_HOME D:\maven\apache-maven-3.3.9 (就是maven的安装目录)    HelloWorld的实现    modelVersion:POM模型版本4.0.0固定    groupId:一般指某个公司或者某个组织的某个项目,比如org.springframework    artifactId:一般指某个具体项目的某个具体模块,比如spring-context    Version:项目的版本    Maven常见命令:        complie 编译        clean 清空        test 测试        package 打包        install 将项目安装到本地仓库    Mvn远程仓库地址:http://mvnrepository.com/

 

第二讲,我的实践:

使用idea创建helloWorld的maven项目:

Mvn远程仓库地址:http://mvnrepository.com/ 这个很重要,我们的需要什么jar包都可以在上面搜寻坐标 idea的时候文件夹的颜色标识这个也重要,不然可能无法new出想要的file 然后就是测试各个maven命令:

第三讲:

maven仓库的概念:

Maven远程仓库配置文件:

$M2_HOME/lib/maven-model-builder-3.3.9jar
下的文件:org/apache/maven/model/pom-4.0.0.xml

-
-
central
Central Repository
https://repo.maven.apache.org/maven2
default
-
false

 

maven依赖:

我们可以将一个项目install到本地仓库,然后本地其他项目引用这个项目,就是引用这个项目的下标,如:
<dependencies>
<dependency>
<groupId>com.java1234.user</groupId>
<artifactId>user-dao</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
我们做个例子:
使用maven创建ssm项目的各个模块并且成功运行:
关键代码:

其实没有什么关键代码,就是ssm的整合搭建

 

依赖的特性:

  最短路径原则和最先声明原则。就是如果A项目中引用了B和C项目,B中间接引用了F,C直接引用了F,那么A中引用F依赖是通过C来达到的,就近原则。当两边路径相等的时候,哪个项目被先引用就使用哪个项目得到依赖。

 

第四讲:

maven的聚合与继承:

聚合:
新的maven项目中,这样聚合其他项目:

../user-dao
../user-service
注意该项目中package只能为pom:
pom

作用:方便统一管理

继承:
继承实现:
新建父项目,然后在子项目坐标前加上继承描述:

com.java1234.user
user-parent
1.0-SNAPSHOT
../user-parent/pom.xml

relativePath一定要加上。

注意:一定要在子项目坐标前,然后就可以使用继承了。

方便版本版本管理与依赖管理
使用了继承子项目的groupId可以删掉了,默认使用的是父项目的groupId。默认状况下 version和packing也是继承父项目的,适当情况下可以省略不写。webapp项目注意packing不要省略,因为父项目一般是jar形式打包,webapp是war包
每个子项目中都有好多jar,它们可能太多的时候导致版本混乱,这样的话我们可以将这些依赖都假如到父类的dependency里面,然后子模块继承父模块可以省略子模块中的版本和scope。都使用父类的版本其他。
注意是放在dependencyManagement里面的dependencies里面添加依赖

org.springframework
spring-context
${spring.version}

可以在pom里面声明版本属性,然后在dependency里面应用它,我们常用来管理版本,使用方式看例子:

4.3.5.RELEASE
3.4.1
org.springframework
spring-context
${spring.version}

我再父项目中装载了其他的子项目,便于管理。使用的idea,感觉还是新建一个项目和新建其他模块比较好一点。虽然效果好像差不多。

  最终的项目各模块的pom:
4.0.0
com.java1234.user
user-parent
1.0-SNAPSHOT
../user-parent/pom.xml
user-web
war
user-web Maven Webapp
http://maven.apache.org
junit
junit
javax.servlet
javax.servlet-api
javax.servlet.jsp
jsp-api
javax.servlet
jstl
com.java1234.user
user-service
1.0-SNAPSHOT
user-web
user-web的pom
4.0.0
com.java1234.user
user-parent
1.0-SNAPSHOT
../user-parent/pom.xml
user-dao
jar
junit
junit
org.mybatis
mybatis
mysql
mysql-connector-java
user-dao的web
4.0.0
com.java1234.user
user-parent
1.0-SNAPSHOT
../user-parent/pom.xml
user-service
jar
org.springframework
spring-context
org.springframework
spring-context-support
org.springframework
spring-core
org.springframework
spring-beans
org.springframework
spring-web
org.springframework
spring-webmvc
org.springframework
spring-jdbc
org.springframework
spring-aop
org.springframework
spring-tx
org.springframework
spring-aspects
org.mybatis
mybatis-spring
junit
junit
com.java1234.user
user-dao
1.0-SNAPSHOT
user-service的web
4.0.0
com.java1234.user
user-parent
1.0-SNAPSHOT
../user-parent/pom.xml
user-service
jar
org.springframework
spring-context
org.springframework
spring-context-support
org.springframework
spring-core
org.springframework
spring-beans
org.springframework
spring-web
org.springframework
spring-webmvc
org.springframework
spring-jdbc
org.springframework
spring-aop
org.springframework
spring-tx
org.springframework
spring-aspects
org.mybatis
mybatis-spring
junit
junit
com.java1234.user
user-dao
1.0-SNAPSHOT
user-aggregator的pom
4.0.0
com.java1234.user
user-parent
1.0-SNAPSHOT
pom
4.3.5.RELEASE
3.4.1
../user-dao
../user-service
../user-web
org.springframework
spring-context
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.mybatis
mybatis-spring
1.3.0
junit
junit
4.12
org.mybatis
mybatis
${mybatis.version}
mysql
mysql-connector-java
5.1.36
javax.servlet
javax.servlet-api
3.1.0
javax.servlet.jsp
jsp-api
2.2
javax.servlet
jstl
1.2
user-parent的pom

 

 

 

转载地址:http://ebuyo.baihongyu.com/

你可能感兴趣的文章
给一个不多于5位的整数,判断位数并逆序输出
查看>>
Linux命令行 (一)
查看>>
Java提取字符串中的手机号
查看>>
Linux基础命令---间歇执行程序watch
查看>>
cisco路由器常用命令
查看>>
数据库查询构建控件集Active Query Builder
查看>>
textarea中的文字自动换行问题
查看>>
mongodb-2.0.5的安装与启动
查看>>
VMware虚拟机出现“需要整合虚拟机磁盘”的解决方法
查看>>
几种常用RAID的特性
查看>>
扎克伯格密邮遭曝光你的邮件系统还安全吗?
查看>>
LNMP环境搭建网站
查看>>
命令行压缩解压7z
查看>>
ASA防火墙 NAT新版老版的配置方法对比
查看>>
maven依赖总结
查看>>
用户追踪-cookie技术
查看>>
RHEL6.3配置DNS服务器(2) 配置缓存域名服务器和转发
查看>>
程序员开心一下
查看>>
leetcode_linearList02
查看>>
360笔试---session cookie的区别
查看>>