初识Maven

在这里插入图片描述
在这里插入图片描述
我们只需要注意一点:执行后面的命令时,前面的命令自动得到执行。
实际上,我们最常用的就是这么几个:

clean:有问题,多清理!
package:打成Jar or War包,会自动进行clean+compile
install:将本地工程Jar上传到本地仓库
deploy:上传到私服

在这里插入图片描述

依赖关系

在这里插入图片描述

Lifecycle/Phase/Goal

使用Maven时,我们首先要了解什么是Maven的生命周期(lifecycle)。

Maven的生命周期由一系列阶段(phase)构成,以内置的生命周期default为例,它包含以下phase:

validate
initialize
generate-sources
process-sources
generate-resources
process-resources
compile
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources
test-compile
process-test-classes
test
prepare-package
package
pre-integration-test
integration-test
post-integration-test
verify
install
deploy

如果我们运行mvn package,Maven就会执行 default 生命周期,它会从开始一直运行到package 这个phase为止:

validate
...
package

如果我们运行mvn compile,Maven也会执行 default 生命周期,但这次它只会运行到compile,即以下几个phase:

validate
...
compile

Maven另一个常用的生命周期是 clean,它会执行3个phase:

pre-clean
clean (注意这个clean不是lifecycle而是phase)
post-clean

所以,我们使用 mvn 这个命令时,后面的参数是 phase,Maven自动根据生命周期运行到指定的 phase。

更复杂的例子是指定多个 phase,例如,运行mvn clean package,Maven先执行 clean 生命周期并运行到 clean 这个 phase,然后执行 default 生命周期并运行到package这个phase,实际执行的phase如下:

pre-clean
clean (注意这个clean是phase)
validate
...
package

在实际开发过程中,经常使用的命令有:

  • mvn clean:清理所有生成的 class 和 jar;

  • mvn clean compile:先清理,再执行到 compile;

  • mvn clean test:先清理,再执行到test,因为执行 test 前必须执行 compile,所以这里不必指定compile;

  • mvn clean package:先清理,再执行到 package。

大多数 phase 在执行过程中,因为我们通常没有在 pom.xml 中配置相关的设置,所以这些phase 什么事情都不做。

经常用到的 phase 其实只有几个:

 clean:清理
 compile:编译
 test:运行测试
 package:打包
Goal

执行一个 phase 又会触发一个或多个 goal:

执行的Phase对应执行的Goal
compilecompiler:compile
testcompiler:testCompile surefire:test

通常情况,我们总是执行phase默认绑定的goal,因此不必指定goal

小结

其实我们类比一下就明白了:

  • lifecycle 相当于Java 的 package,它包含一个或多个phase;

  • phase 相当于Java 的class,它包含一个或多个goal;

  • goal 相当于class 的method,它其实才是真正干活的。

大多数情况,我们只要指定phase,就默认执行这些phase默认绑定的goal,只有少数情况,我们可以直接指定运行一个goal,例如,启动Tomcat服务器:

mvn tomcat:run

Maven镜像

除了可以从Maven的中央仓库下载外,还可以从Maven的镜像仓库下载。如果访问Maven的中央仓库非常慢,我们可以选择一个速度较快的Maven的镜像仓库。Maven镜像仓库定期从中央仓库同步:

打开保存默认仓库路径C:\Users\32332\.m2中的settings.xml文件,添加<mirrors>内容如下

<settings>
    <mirrors>
        <mirror>
            <id>aliyun</id>
            <name>aliyun</name>
            <mirrorOf>central</mirrorOf>
            <!-- 国内推荐阿里云的Maven镜像 -->
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
    </mirrors>
</settings>

并且设置本地仓库

<localRepository>D:\maven-local-repository</localRepository>

:在安装目录下的settrings.xml文件也修改如上

Maven使用骨架创建工程

创建普通java工程

推荐不选择骨架,若要选择骨架,选择如下骨架
在这里插入图片描述

创建javaweb工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需手动补齐src/main/java目录,先 new一个directory取名为java,再如下图设置

在这里插入图片描述

创建Servlet实例

配置pom.xml文件如下

  • 添加servletjspjar 包,若本地仓库存在,idea会自动弹出选项,或者去中央仓库选则具体 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.1</version>
      <scope>provided</scope>
    </dependency>
  • 添加 tomcat7 插件,不然会默认使用 tomcat6,不兼容,运行项目用tomcat7:run命令
  • 配置 web.xml 如下
<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.itcast.cn.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/myServlet</url-pattern>
  </servlet-mapping>
</web-app>
  • webapp目录下创建hello.jsp文件,在com.itcast.cn目录下创建MyServlet文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值