使用Maven构建项目1

1.eclipse设置maven:

  (1)在window-preference-maven中installations中add添加maven的根目录,选择完目录后记得把maven勾上

  (2)在usersetting中,设置settings.xml配置文件

2.新建项目:在eclipse中新建一个maven project(新建项目的时候可以选择是否创建简单项目,简单项目的话会自动给你预设好的模板,不勾选的话就是可以自己选择模板)

  (1)Group id:com.azuma  Artifact id:HelloMaven  版本号默认即可  (具体根据自己喜欢的填写)

  (2)勾选构建简单项目的情况:Group id:com.azuma  Artifact id:HelloMaven  版本号默认即可  packaging :war  Name:HellowMaven  Description:第一个maven项目  剩下的副项目:默认空白即可

  (3)创建好项目后pom.xml中war报错:src/main/webapp中缺少了WEB-INF/web.xml,复制一份进去即可

  (4)在pom.xml中,设置插件,放在 <project></project>中即可   

  <build>
        <plugins><!-- 插件列表 -->
            <plugin><!-- 通过坐标获取插件 -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

  (5)这时候项目可能报错,但是却不显示哪里错误,可能se版本问题,右键工程——maven——update project即可

3.修改Maven默认编译级别:

  (1)      全局编译级别 -> 修改settings.xml

  (2)      项目级别修改 -> 项目对应的pom.xml

4.在Java Resourcese -> src/main/java下写代码,创建包和Servlet;

  (1)Name:TestServlet  package:com.ayanami.web

  (2)URL mapping:选择/test

  (3)点击完成

  (4)创建文件显示错误,是因为没有导包,在pom.xml中导入相关jar包

<dependencies><!-- 依赖标签 配置项目中依赖的jar包坐标 -->
    
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

  (5)TestServlet.java仍然报错 :因为添加的servletjar包版本是2.5,比较低,还不支持注解,删除TestServlet.java中的注解 @WebServlet("test")即可,顺便把导入的包也删除

  (6)在web.xml中,添加一个新的servlet

  <servlet>
      <servlet-name>TestServlet</servlet-name>
      <servlet-class>com.ayanami.web.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>TestServlet</servlet-name>
      <url-pattern>/test</url-pattern>
  </servlet-mapping>

  (7)项目右键run as——maven build:Goals:tomcat:run 剩下的默认,然后直接运行

5.手动添加插件和依赖,配置Tomcat7插件(解决版本过低不能添加注解问题)

  (1)新建一个项目,相关设置同上

  (2)eclipse——window——Show view——other——maven Repositories,open

  (3)可以看到maven Repositories中看到一个本地仓库,在local repository中右键rebuild index

   (4)第一次索引生成较慢,生成索引成功后,在pom.xml中:右键——maven——add Plugin——Enter groupartifactid or sha1prefix or pattern(")输入框中,填写  compile,然后打开下面search results中,选择3.8版本的

   (5)更新项目:右键项目——maven——update  project

  (6)重新按照之前项目的添加一个servlet

  (7)在pom.xml中添加依赖:右键——maven——Add Dependency——搜索 servlet——选择Tomcat servlet-api——7.0.42版本

   (8)右键——maven——Add Dependency——搜索 juntt——添加4.9版本

   (9)添加保存后,可以看到maven Dependencies中已经有相关版本的jar包了

  (10)在pom.xml中的plugins属性下添加Tomcat7插件

          <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
          <configuration>
              <port>8081</port>
              <path>/</path>
          </configuration>
        </plugin>

  (11)此时可以使用注解了,右键运行项目(跟之前的一样)即可。注意:maven build的时候  goals : tomcat7:run

  (12)如果运行后出现jdk错误的话,一般是jdk安装有问题

  (13)运行项目显示500错误:pom.xml中的 dependencies属性中缺少scope标签,添加<scope>provided</scope>即可

 

   (14)配置端口:在tomcat7-maven-plugin中添加configuration标签:

<configuration>
              <port>8081</port>
              <path>/</path>
          </configuration>

6. 在servlet-api中添加scope标签,值为:proviede;

  (1)      如果不加此标签有很大几率报错,因为tomcat中也有servlet-api的包导致冲突;

7、  运行:发生错误,原因是maven默认使用tomcat6.xx,不支持@WebServle注解;

  (1)     解决方案1:需要去web.xml中配置Servlet;

  (2)     解决方案2:配置高版本tomcat插件;

8.最后测试,启动服务,在地址栏输入请求,显示结果;

9.使用tomcat7插件运行项目;

10.Scope依赖作用域也可称作依赖范围:maven中的依赖,会根据程序所处的阶段和场景发生变化,所以maven用scope属性来做限制;(上面没使用scope属性的时候出现错误是因为jar包所在目录有多份同样的jar包导致冲突,加入scope属性后就只有一份了)

  (1)      compile(默认值):在编译、运行、测试、打包都有效;

  (2)     provided:编译、测试时有效,运行、打包无效;

  (3)     test:仅在测试时有效;

  (4)      runtime:测试、运行、打包时有效;

  (5) system:不推荐使用,使用system作用域不会去本地仓库寻找依赖,要指定本地路径;

    

11.Maven3.5和tomcat8.5热部署(热部署:在tomcat运行时将项目部署上去;)

  (1)开启tomcat热部署:

    a)      修改tomcat -> conf-> tomcat-users.xml 配置文件;

    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="azuma" password="123123" roles="manager-gui, manager-script"/>

    b)  在项目pom.xml中移除低版本的tomcat,添加高版本的tomcat

  

     c)      在tomcat.Maven包下的tomcat-users标签中加入以下代码:   

<plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
          <configuration>
              <url>http://localhost:8080/manager/text</url>
              <username>azuma</username>
              <password>123123</password>
          </configuration>
        </plugin>

    d)在pom.xml和web.xml中修改artifactId中的项目名

    e)      启动tomcat;

    f)      修改项目中pom.xml,在tomcat7的插件上添加以下代码:

                          i.          tomcat7:deploy,第一次部署时使用。    

                         ii.          tomcat7:redeploy,非第一次部署时使用。

    g)      右键项目-> run as -> maven build… 在goals中使用tomcat7:deploy或tomcat7:redeploy来进行热部署;

    h)       部署完毕,打开浏览器测试;

猜你喜欢

转载自www.cnblogs.com/AzumaRinne/p/12628663.html