Maven

百技培训中,做的项目中是使用maven进行构建项目,发现有些东西已经模糊了,在对maven进行总结。

目录结构

 

功能介绍

maven 主要有两个功能。依赖管理和一键构建,前者是为了帮助我们寻找jar包,后者是方便我们进行部署。我们首先看下我们的maven项目。

  <!-- 公司组织名称-->
  <groupId>org.example</groupId>
  <!-- 项目名-->
  <artifactId>ssm</artifactId>
  <!-- 版本号-->
  <version>1.0-SNAPSHOT</version>

maven项目的pom文件代表着jar包的坐标,一般进行下载时,按照本地仓库->远程仓库->中央仓库的顺序进行下载,即前者没有就到后者下载。

命令介绍

mvn clean

不可避免的我们会接手别人的项目,由于配置环境的不同,这时候我们首先就要将别人的编译信息清除。对应的也就是图中的target包。

image.png

mvn compile

这个不需要多说,就是编译我们的核心代码文件。

mvn test

这个命令除了会编译核心代码文件之外,还会编译我们的测试代码。

mvn package

这个命令除了会编译核心代码文件和编译测试代码之外,还会生成jar包或者war包(由pom文件决定)。

image.png

mvn install

包含mvn package的所有功能,另外还会将包推送到我们的本地仓库。

每一个构建项目的命令都对应了底层的插件。可以发现,以上几个命令是一种递进包含关系,也表示了maven的生命周期。在idea左侧我们可以看到。

image.png

作用域

在学习servelt的时候,如果在pom文件中像下面这样写。然后使用mvn tomcat:run启动项目并运行,会报错servlet不能被识别。

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

在一键构建时我们知道,在启动Spring项目时是不需要依赖外部tomcat,也就是说maven自带有tomcat。排查的时候我们发现tomcat文件夹中是有上面的两个jar包的,所以会报错,这时候使用provided让这两个jar包只在编译时候起作用而运行时不起作用就可以解决问题。

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

插件

在使用mvn tomcat:run时候一般是使用tomcat6,如果我们想使用tomcat7时候我们怎么改呢?

            <!-- 配置Tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>8080</port>
                </configuration>
            </plugin>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值