zoukankan      html  css  js  c++  java
  • Maven学习笔记一

    maven是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的。

    Maven好处

    1、普通的传统项目,包含jar包,占用空间很大。而Maven项目不包含jar包,所以占用空间很小。 但还是需要jar的,只是没有存在于maven项目里面,而是存在本地仓库中。

    2、依赖管理,只需要在pom.xml配置需要的插件,就能在在项目中使用。主要是能够对jar包的统一管理,可以节省空间。

    3、项目一键构建,maven可以进行编译、测试(junit)、运行、打包、部署。一个 tomcat:run命令就能把项目运行起来。

    4、可以跨平台

    5、应用于大型项目,可以提高开发效率。

    Maven的安装配置

    1、下载安装

    下载地址:http://maven.apache.org/download.cgi,下载后直接解压到一个没有中文没有空格的文件夹里,解压后的目录如下:

    Maven软件的核心文件:

    2、Maven环境变量配置

    前提是要配置jdk, maven3.3.9这个版本所需的jdk版本必须要1.7以上。最终要运行的是maven软件中bin目录的mvn命令。

    2.1 添加系统变量

    • 变量名:最好叫M2_HOME
    • 变量值:就是maven软件解压的目录,比如:F:class32apache-maven-3.3.9

    2.2 把M2_HOME添加到系统变量的path末尾,注意加分号。

     

    2.3 验证maven是否配置成功

    打开dos窗口,输入: mvn –v

     

    Maven仓库

    Maven有三种仓库

    1、本地仓库,自己维护

    如果想要修改maven的本地仓库位置,可以在maven的安装目录下的conf目录下的settings.xml配置文件中设置。

     

    2、远程仓库(私服),公司维护

    3、中央仓库, maven团队维护

    总计jar包已达两个亿,所以无需担心没有我们需要的jar包,三种仓库的关系如下:

     

    本地项目会先到本地仓库查找,如果有,直接使用,如果没有,会到远程仓库找,找到会下载到本地,没找到,会到中央仓库找,找到后本地仓库和远程仓库都会缓存一份。以便以后使用。当然如果没有远程仓库,则直接到中央仓库查找。

    Maven入门程序

    Maven项目的目录结构

    src下的目录结构:

     

    Maven的常用命令

     Clean   清理编译的文件

     

    Compile 编译了主目录的文件

    Test  编译并运行了test目录的代码

    Package 打包

    Install 就是把项目发布到本地仓库

    Tomcatrun  一键启动,运行tomcat7的时候使用需mvn tomcat7:run 

    Maven的生命周期

     

    其中常用的有:Compile test package install deploy(发布到私服)

    分为三种生命周期:

    1. Clean生命周期: clean
    2. Default生命周期:compile test package install deploy,执行后面的命令,前面的命令都会执行。比如执行install,则compile test package也会执行。
    3. Site生命周期:site

    命令和生命周期的阶段的关系

    不同的生命周期的命令可以同时执行。比如:mvn clean package

    在eclipse中构建项目

    1、m2e插件的安装,即maven在eclipse的配置。选择3.3.9版本的maven软件

     

    2、修改默认的本地仓库地址

     

    3、新建maven项目

     

    4、调过骨架,如果不跳过骨架选择创建出的项目目录是不全的

     

    5、填写坐标

     

    6、创建工程

     

    7、处理红色叉号。手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件

     

    8、处理编译版本,在pom.xml中添加如下代码,默认是jdk1.5。

    <build>
            <!-- 配置了很多插件 -->
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5.1</version>  
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>

    9、创建一个servlet

     

    10、修改web.xml,删除重复的代码:xmlns=http://java.sun.com/xml/ns/javaee

    11、添加jar包,在pom中添加如下代码:

    <dependencies>
            <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>

    会发现jar包已添加到项目中

     

    12、启动项目,右击项目---run as –maven build ….

     

    在IDEA中使用Maven构建项目

    1、配置Maven

    2、弹出如下界面,找到maven:

    关于速度慢,卡死问题可以参考:解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog

    3、设置好后,开始使用Maven 骨架创建 Java Web 项目

    如果已按照上面的配置配置好,下面这一步默认就行。

    下一步也是默认就行。

    不出意外,就能看到创建好的项目

    由上图可以看出,main下面并没有java文件夹,我们需要手动添加。添加好后,鼠标右键新建时,并不能添加class文件。

    我们需要把java文件夹设置为Source,方法是点击右上角的project structure按钮。即可进入以下页面。

     

     新建一个servlet,并添加依赖。

    稍等片刻,jar包就会引入到我们的项目中,输出一个字符串试试:

     @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doPost(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.getWriter().write("maven studing");
        }

    配置Servlet,由于maven生成的web.xml的Servlet版本太低,我们使用正常的web.xml覆盖掉自动生成的。

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             id="WebApp_ID" version="2.5">
    
    
    
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
    
      
      <servlet>
        <servlet-name>Servlet03</servlet-name>
        <servlet-class>com.yyb.test.Servlet3</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>Servlet03</servlet-name>
        <url-pattern>/Servlet03</url-pattern>
      </servlet-mapping>
    </web-app>

    pom.xml配置如下:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.yyb</groupId>
      <artifactId>Maven03</artifactId>
      <packaging>war</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>Maven03 Maven Webapp</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
          <!--一定要配置为provided,表示只在编译时使用此jar包,运行时tomcat自带有,不然会和tomcat起冲突-->
          <scope>provided</scope>
        </dependency>
      </dependencies>
      <build>
        <finalName>Maven03</finalName>
        <!--配置jdk版本为1.7-->
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.5.1</version>
              <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <encoding>UTF-8</encoding>
              </configuration>
            </plugin>
            <!--配置tomcat7-->
            <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat7-maven-plugin</artifactId>
              <version>2.1</version>
            </plugin>
          </plugins>
      </build>
    </project>

    准备就绪,下面测试项目,如下所示:

    在地址栏输入:http://localhost:8080/Maven03/Servlet03,如下所示:

     

    到此为止,我们的项目构建就完成了。

  • 相关阅读:
    hdu 4597 记忆化搜索
    hdu 4494 最小费用流
    hdu 4598 差分约束
    poj 3621 0/1分数规划求最优比率生成环
    poj 1695 动态规划
    noi 97 积木游戏
    hdu 4705 排列组合
    洛谷P2014 选课
    洛谷P1776 宝物筛选
    洛谷P1782 旅行商的背包
  • 原文地址:https://www.cnblogs.com/ginb/p/7340215.html
Copyright © 2011-2022 走看看