目录

maven学习总结

记录学习maven过程,以及自己的一点思考

eclipse中的项目是如何构建的?

  1. eclipse通过ant给我们自动化构建项目,无需配置
  2. eclipse中项目的打包编译都是ant完成的。

eclipse中maven配置

  1. 下载maven软件
  2. 配置maven软件到eclipse
  3. 在eclipse中配置setting.xml文件路径
  4. 在setting中配置本地仓库位置、阿里镜像仓库、JDK版本
  5. 在eclipse中update setting

maven中的坐标

根据如下三个坐标定义一个jar包位置

group id

公司名-公司网址倒写

artifact id

项目名

version

版本

packaging

项目的类型,打包会根据该选项打包

jar

java项目

war

web项目

pom

project object mode项目对象模型

  1. 把project当成对象看待
  2. 通过maven构建工具可以让项目之间产生联系
  3. pom一般作为逻辑父项目
  4. 只要一个项目有子项目,该项目必须是pom类型项目

maven项目的目录结构

  1. src/main/java 真实目录的快捷目录,存放java代码
  2. src/main/resources java项目是根路径,web项目是classes路径
  3. src/test/java 测试java代码
  4. src/test/resources 测试配置文件
  5. pom.xml maven配置文件

maven项目之间的关系

依赖关系

  1. 通过标签depandency把另外一个项目的jar引入多年当前项目
  2. 自动下载另外一个项目所依赖的其他项目

继承关系

  1. 父项目是pom类型
  2. 如果子项目是别的项目的父项目也是pom类型
  3. 子项目的pom.xml文件中需引入parent标签
  4. 子项目的groupid、version与父项目相同时可以不配置
  5. 父项目pom.xml中是看不到子项目的,在逻辑上具有父子项目关系

聚合关系

  1. 前提是继承关系,会把子项目包含到父项目中
  2. 子项目的类型必须是maven moudle,而不是maven project
  3. 父项目的pom.xml可以看到子项目,module标签体现
  4. 和继承关系没有本质区别
  5. 继承关系和聚合关系中的父项目可管理项目的jar包版本

war类型项目

  1. 创建maven project时选择packaging为war

  2. 在webapp文件夹下新建META-INF和WEB-INF/web.xml

  3. 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>
    
  4. 配置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>
    
  5. scope指定是编译期使用还是运行期使用

  6. servlet-api、jsp-api是编译期使用

maven配合tomcat实现热部署

  1. 修改tomat/conf/tomcat-users.xml添加

    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
    
  2. 在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>
    
  3. 右键项目–> run as –> maven build(以前写过,选择第二个) –>输入

    • tomcat7:deploy 第一次发布
    • tomcat7:redeploy 不是第一次发布