maven学习总结
目录
记录学习maven过程,以及自己的一点思考
eclipse中的项目是如何构建的?
- eclipse通过ant给我们自动化构建项目,无需配置
- eclipse中项目的打包编译都是ant完成的。
eclipse中maven配置
- 下载maven软件
- 配置maven软件到eclipse
- 在eclipse中配置setting.xml文件路径
- 在setting中配置本地仓库位置、阿里镜像仓库、JDK版本
- 在eclipse中update setting
maven中的坐标
根据如下三个坐标定义一个jar包位置
group id
公司名-公司网址倒写
artifact id
项目名
version
版本
packaging
项目的类型,打包会根据该选项打包
jar
java项目
war
web项目
pom
project object mode项目对象模型
- 把project当成对象看待
- 通过maven构建工具可以让项目之间产生联系
- pom一般作为逻辑父项目
- 只要一个项目有子项目,该项目必须是pom类型项目
maven项目的目录结构
- src/main/java 真实目录的快捷目录,存放java代码
- src/main/resources java项目是根路径,web项目是classes路径
- src/test/java 测试java代码
- src/test/resources 测试配置文件
- pom.xml maven配置文件
maven项目之间的关系
依赖关系
- 通过标签depandency把另外一个项目的jar引入多年当前项目
- 自动下载另外一个项目所依赖的其他项目
继承关系
- 父项目是pom类型
- 如果子项目是别的项目的父项目也是pom类型
- 子项目的pom.xml文件中需引入parent标签
- 子项目的groupid、version与父项目相同时可以不配置
- 父项目pom.xml中是看不到子项目的,在逻辑上具有父子项目关系
聚合关系
- 前提是继承关系,会把子项目包含到父项目中
- 子项目的类型必须是maven moudle,而不是maven project
- 父项目的pom.xml可以看到子项目,module标签体现
- 和继承关系没有本质区别
- 继承关系和聚合关系中的父项目可管理项目的jar包版本
war类型项目
-
创建maven project时选择packaging为war
-
在webapp文件夹下新建META-INF和WEB-INF/web.xml
-
pom.xml中导入servlet-api、jsp-api、jstl
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${servlet-version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>${jsp-version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>${jstl-version}</version> </dependency>
-
配置tomcat插件
<plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 控制tomcat端口号 --> <port>80</port> <!-- 项目发布到tomcat后的名称 --> <!-- / 相当于把项目发布名称为ROOT --> <!-- /abc --> <path>/</path> </configuration> </plugin> </plugins>
-
scope指定是编译期使用还是运行期使用
-
servlet-api、jsp-api是编译期使用
maven配合tomcat实现热部署
-
修改tomat/conf/tomcat-users.xml添加
<role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
-
在maven项目的pom.xml中tomcat插件的里配置
<plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 控制tomcat端口号 --> <port>80</port> <!-- 项目发布到tomcat后的名称 --> <!-- / 相当于把项目发布名称为ROOT --> <!-- /abc --> <path>/jqk</path> <username>tomcat</username> <password>tomcat</password> <url>http://192.168.139.128:8080/manager/text</url> </configuration> </plugin> </plugins>
-
右键项目–> run as –> maven build(以前写过,选择第二个) –>输入
- tomcat7:deploy 第一次发布
- tomcat7:redeploy 不是第一次发布