maven第一阶段

Maven第一阶段

Maven 的好处

maven: 专家,内行

  • 最直观的效果(项目的大小小很多):
    • 传统项目
    • Maven 项目

分析出maven优点是如何实现的

  1. 依赖管理
    • 就是对jar包管理的过程
    • 分析jar包查找的过程:
    • 在项目与maven的仓库之间有索引,所以速度也不会变慢
  2. 项目的一键构建
    什么是构建:

    • 找到编译好的项目目录下运行 mvn tomcat:run,就会自动转成war放到apach下并打开服务器,然后还有提示输入的网址

Maven的安装

下载之后直接解压即可

对应的目录结构:

Maven的配置及仓库的位置

配置环境变量

  • 电脑上需安装环境,安装JDK1.7 +版本 (将配置环境变量path )
  • 配置MAVEN_HOME ,变量值就是你的安装 的路径(bin目录之前一级目录),然后将 %MAVEN_HOME%/bin 加入环境变量path

    配置完之后可以用 mvn -version 或简写为 mvn -v 来查看版本信息3.3.9来确定是否安装成功。

仓库的配置

但是使用mvn tomcat:run ,还是不能使用,因为在默认情况下会通过 pom.xml 这个配置文件先在本地仓库中找,找不到再去远程仓库,找不到再去中央仓库.

  • 仓库的分类

    1. 本地仓库
      自己电脑上的仓库
    2. 远程仓库:
      公司内部的服务器上
    3. 中央仓库apache服务器上呢:有些收费的jar包没有例如:Oracle
      http://repo1.maven.org/maven2
  • 配置maven的查找本地仓库的路劲:

    • 找到maven的安装目录下的conf下的settings.xml打开
    • 配置<localRepository>本地仓库的地址</localRepository>

maven工程的标准目录结构

既符合maven目录规范,又符合web项目规范

Maven的目录结构的规范:

Maven 命令

使用dos窗口,进入到有pom.xml的目录即可。

  1. mvn compile 编译
    • compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。
  2. mvn test 单元测试,先编译在运行单元测试类
    • test是maven工程的测试命令, mvn test ,会执行src/test/java 下的单元测试类。
  3. mvn clean 清除编译
    • clean是maven工程的清除命令,执行clean会删除target目录及内容。
  4. mvn package:java项目导jar包,web项目导war包
    • package是maven工程的打包命令,对于java工程执行package打包成jar包,对于web工程打包成war包。
  5. mvn install(install 第二次执行的时候,不会删除没有修改的内容,只会修改更改过的内容)
    • install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库。
  • 当后面的命令执行时,前面的操作过程也都会自动执行,

Eclipse中使用maven

配置

  1. 高版本的eclipse中内置maven的插件,在windows中的属性中找到maven属性配置Installations中路劲改为自己的maven的路劲

    点击add

    2. 在eclipse中配置仓库的位置

     3. 构建索引
     `Window—show view ——other———-maven Repositories`
     4. 重构索引
     

使用

1. 在eclipse中创建一个maven工程

2. 选择maven project
 
3. 点next进入下面的界面
 
4. 可以看到一个helloworld工程,但报错(添加下面的内容就OK了)
  (有的时候web的目录结构不会自动生成,所以需要在webapp下加一个WEB_INF/web.xml
 
5. src/java/main创建了一个Servlet,但报错
  
6. 要解决问题,就是要将servlet-api-xxx.jar包放进来,作为maven工程应当添加servlet的坐标,从而导入它的jar
  直接打开helloworld工程的pom.xml文件,再添加坐标

7. 添加后自动生成的结果如下:
  

  • 一般web项目需要 servlet-api 2.5jsp-api:2.0
    8. 添加包的坐标时,还可以指定这个jar包将来的作用范围
      
     

  • jar包冲突

通过命令运行的tomcat是仓库中的插件,跟以前的tomcat没关系
因为刚才自己引入了servlet跟jsp的jar包但是,tomcat中自己已经内置了这两个jar包了所以会发生冲突
所以需要插入jar包的时候选择一下作用范围:provided



9. 调整jdk,在pom.xml文件中添加如下配置:

  • 运行时,jdk版本低于1.7的时候也会报错,把下面的代码配置到pom.xml中即可调整版本到1.7

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • 有的时候改了jdk版本也会报错,重新删除刷一遍,不行再多来几遍。

注意的一些问题

  • maven有错误的时候可以右键maven-->update project,然后有的时候就不会报错了
  • 有的时候也会报错,剪贴然后重新粘贴保存一下

  • 到服务器上运行有两种方式:

    • 运行maven仓库中的Tomcat插件,右键项目然后找到run as ---> 里面有好多maven的命名,也可以有maven build...自己敲命令,运行在在服务器上就是tomcat:run
    • 也能像以前web中那样,先把项目加入服务器中在运行
  • 仓库中的插件默认运行的Tomcat6的版本,下面是切换版本的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Tomcat6:
<plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>tomcat-maven-plugin</artifactId>
      <version>1.1</version>
      <configuration>
          <path>/wp</path>
           <port>8080</port>
           <uriEncoding>UTF-8</uriEncoding>
           <url>http://localhost:8080/manager/html</url>
           <server>tomcat6</server>
       </configuration>
 </plugin>
Tomcat7:
 <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <port>9090</port>
        <path>/mgr</path>
        <uriEncoding>UTF-8</uriEncoding>
        <server>tomcat7</server>
    </configuration>
</plugin>
  • 简要说明一下:
    1. path 是访问应用的路径
    2. port 是tomcat 的端口号
    3. uriEncoding URL按UTF-8进行编码,这样就解决了中文参数乱码。
    4. Server 指定tomcat名称。
  • 运行:右键-----> run as ----->maven build..:tomcat:run
    • Tomcat的版本就要改为tomcat7:run
张冲 wechat
欢迎扫一扫上面的微信关注我,一起交流!
坚持原创技术分享,您的支持将鼓励我继续创,点击打赏!