https://www.imooc.com/learn/443
目录结构
install 之后,其他项目就可以正常地 import 了。
-DgroupId 反写域名 +项目名
-DartifactId 模块名(用连字符)
-Dversioin 版本号
-Dpackage 反写域名+项目名+模块包名
groupId artifactId 合成一个依赖的“坐标”
仓库和镜像仓库的地址和本地仓库路径 可以在 $MAVEN_HOME/conf/settings.xml 里配置
Eclipse 中的 Maven
问题:Perhaps you are running on a JRE rather than a JDK?
解决:在 BuildPath - Add library - System JRE 选择系统的 JRE运行环境 即可成功构建
插件:maven.apache.org/plugins/index.html
Maven 项目和实际项目并不是一一对应的关系,因为 Maven 体现的是模块化的概念,所以一个实际项目往往被划分成很多的模块。
snapshot alpha beta release GA 版本号的意义
http://www.blogjava.net/RomulusW/archive/2008/05/04/197985.html
https://blog.csdn.net/zmken497300/article/details/51707967/
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope
开发中,如果需要使用框架,则需要将框架的 jar 包引入到项目的classpath路径中。Maven提供了三种classpath :编译,测试,运行
import http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies
依赖传递
山鸡-》浩南-》B哥
修改Maven Settings 文件
https://www.cnblogs.com/30go/p/7154298.html
如此就创建Maven项目识,就不需要手动修改BuildPath 中的 JDK版本了
exclusion 包groupId ,artifactId,不包含 version
依赖冲突
中心库
http://mvnrepository.com/tags/maven
commons-io
http://mvnrepository.com/artifact/commons-io/commons-io
山鸡-》浩南-》B哥
浩南->commons-io2.0
B哥->commons-io2.4
则 山鸡得到的是commons-io2.0,因为楠哥离山鸡更近
如,山鸡同时依赖南哥和B哥,南哥(2.0)和B哥(2.4)没有依赖关系,则哪个dependency 在前面,就用哪个版本的jar
聚合和继承
...
运行 clean install 实现继承
由于三个人都有Junit依赖,所以可以将junit 抽取形成父依赖
新建 hongxing-parent maven 项目pom 关键如下:
“子”项目引用pom如下,新增parent标签包裹父项目的坐标,依赖列表中删除version 和 scope 标签:
如果不删除dependency 中的version 和 scope ,则 以子覆盖父
新建 Web 项目
一、新建 maven 模板不用之前的quickstart 而是 webapp,然后去中央仓库找到 servlet API 添加进来,如下:
二、creat floder 创建 src/main/java 和 src/test/java src/test/resources
三、检查 properties -> buildpatch -> scource 确保output folder 都是 项目/target/classes
四、检查 properties -> buildpatch -> project facets 勾选了 Dynamic Web Module
五、修改部署时的默认配置
右键项目 properties-> depolyment assembly 将 src/test 下的内容都remove掉。
五步完成即创建成功。使用package 命令将其打包并发布到指定的Web容器中,就可以在浏览器中访问了.
引入jetty
Run As -> Maven Build -> jetty:run
成功运行后,访问localhost:8080即可看到 Hello World! 内容。
不想每次输入 jetty:run,打包成功后使用jetty:run来运行jetty服务, 可以修改pom plugin 的execution标签,如下:
注意关掉之前正在运行的jetty ,否则会报端口占用的错误。
Tomcat
使用tomcat 也是,直接替换Jetty 的坐标即可
https://tomcat.apache.org/maven-plugin-2.2/
https://tomcat.apache.org/
or
运行成功 http://localhost:8080/webdemo/
课程总结