MAVEN (一)简单实用

MAVEN简介

Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。

Maven 功能

 1.构建 
 2.文档生成
 3.报告 
 4.依赖 
 5.SCMs 
 6.发布
 7.分发
 8.邮件列表

Maven 特点

项目设置遵循统一的规则。

任意工程中共享。

依赖管理包括自动更新。

一个庞大且不断增长的库。

可扩展,能够轻松编写 Java 或脚本语言的插件。

只需很少或不需要额外配置即可即时访问新功能。

基于模型的构建 − Maven能够将任意数量的项目构建到预定义的输出类型中,
如 JAR,WAR 或基于项目元数据的分发,而不需要在大多数情况下执行任何
脚本。

项目信息的一致性站点 − 使用与构建过程相同的元数据,Maven 能够生成
一个网站或PDF,包括您要添加的任何文档,并添加到关于项目开发状态的
标准报告中。

发布管理和发布单独的输出 − Maven 将不需要额外的配置,就可以与源
代码管理系统(如 Subversion 或 Git)集成,并可以基于某个标签管理
项目的发布。它也可以将其发布到分发位置供其他项目使用。Maven 能够
发布单独的输出,如 JAR,包含其他依赖和文档的归档,或者作为源代码
发布。

向后兼容性 − 您可以很轻松的从旧版本 Maven 的多个模块移植到 Maven 3 中。

子项目使用父项目依赖时,正常情况子项目应该继承父项目依赖,无需使用版本号,

并行构建 − 编译的速度能普遍提高20 - 50 %。

更好的错误报告 − Maven 改进了错误报告,它为您提供了 Maven wiki 页面的
链接,您可以点击链接查看错误的完整描述。

面试题

MAVEN介绍

	Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录
结构和默认构建生命周期。
	在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作
更轻松,同时创建报表,检查,构建和测试自动化设置。
Maven提供了开发人员的方式来管理:
Builds
Documentation
Reporting
Dependencies
SCMs
Releases
Distribution
mailing list
概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。

MAVEN环境变量配置

1.MAVEN的根目录

2.MAVEN的bin目录
在这里插入图片描述
这两步超简单

内部文件自己去网站上下载即可

测试
用 windows+R 输入cmd 打开控制台
输入mvn
在这里插入图片描述
如果跟我一样就可以用了

MAVEN命令参数

  • clean
    maven工程的清理命令,执行clean会删除target目录及内容。

  • compile
    maven工程的编译命令,作用是将 src/main/java 下的文件编译为class文件输出到target目录下。

  • test
    maven工程的测试命令,作用是执行 src/test/java 下单元测试类,并编译为class文件,运行测试类。(也执行了compile命令)

  • package
    maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。
    且运行test命令,jar包或者war包中没有单元测试的内容

  • install
    maven工程的安装命令,执行install将mave工程打成jar包或war包,并发布到本地仓库。
    且运行了package命令

测试

我这里新建了一个MavenWeb 直接测试 且用的是本地库

库:(介绍一下)

在 Maven 的术语中,仓库是一个位置(place)。

Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。

在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。

Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。

Maven 仓库有三种类型:

本地(local)
中央(central)
远程(remote)

本地仓库

Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建。

运行 Maven 的时候,Maven 所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。

默认情况下,不管Linux还是 Windows,每个用户在自己的用户目录下都有一个路径名为 .m2/respository/ 的仓库目录。

Maven 本地仓库默认被创建在 %USER_HOME% 目录下。要修改默认位置,在 %M2_HOME%\conf 目录中的 Maven 的 settings.xml 文件中定义另一个路径。

中央仓库(central)

Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。

中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到。

中央仓库的关键概念:

这个仓库由 Maven 社区管理。
不需要配置。
需要通过网络才能访问。
要浏览中央仓库的内容,maven 社区提供了一个 URL:http://search.maven.org/#browse。使用这个仓库,开发人员可以搜索所有可以获取的代码库。

远程仓库(remote)

如果 Maven 在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库的概念,它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。

举例说明,使用下面的 pom.xml,Maven 将从远程仓库中下载该 pom.xml 中声明的所依赖的(在中央仓库中获取不到的)文件。

dos命令测验

clean命令
在这里插入图片描述
target文件没了(编译文件)
在这里插入图片描述
compile 命令
在这里插入图片描述
test命令
在这里插入图片描述
剩下的依次运行即可

IDEA内部操作

在这里插入图片描述
pom.xml 里的配置信息

标签scope 作用域

  • compile
    默认依赖范围,作用域在编译、测试、运行时都有效。

  • test
    作用域在测试时有效。编译和运行时不需要,比如:Junit。

  • provided

  •   作用域在编译、测试时有效。运行时不需要,比如: servlet api 被 tomcat 容器提供。 
    
  • runtime
    作用域在测试、运行时有效。编译时不需要,比如:jdbc的驱动包。

<!-- -->
<modelVersion>4.0.0</modelVersion><!-- 模型版本 -->
	<groupId>maven_test</groupId> <!-- 组织名,公司网址的反写 + 项目名称-->
    <artifactId>maven_test</artifactId><!-- 项目名-模块名 -->
    <version>1.0-SNAPSHOT</version><!-- 项目版本号 -->
    <packaging>war</packaging><!-- 项目类型 war(web项目)不写或jar(普通java类型) -->
<url>/</url><!-- 项目路径 -->


 <!-- 添加外部依赖 -->
<dependencies> <!-- 在这里添加你的多种依赖 -->
		
		<!-- 添加jsp依赖 -->
        <dependency> <!-- 在这里添加你的依赖 -->
            <groupId>javax.servlet.jsp</groupId> <!--库名称,也可以自定义-->
            <artifactId>jsp-api</artifactId> <!--库名称,也可以自定义-->
            <version>2.2</version> <!--版本号-->
            <scope>provided</scope><!--作用域-->
        </dependency>
        
        <!-- 添加Servlet依赖 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        
        <!-- 添加jstl -->
		<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

		<!-- mysql驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>

        <!-- 添加德鲁伊链接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.9</version>
        </dependency>

        <!-- jdbcTemplate -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
        
 </dependencies>




<build>
        <plugins>

            <!-- 添加jdk 1.8  -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId><!-- 位置 -->
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version> <!-- 版本号 -->
                <configuration>
                    <source>1.8</source> <!-- 版本号 -->
                    <target>1.8</target> <!-- -->
                    <encoding>utf-8</encoding> <!-- 编码格式 -->
                </configuration>
            </plugin>
			
			<!--  添加tomcat7-->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <port>8888</port>
                    <path>/</path>
                </configuration>
            </plugin>
            
        </plugins>
    </build>

注意:
想执行test方法其类名必须有Test字样

案例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载很慢等着就可以了
下面这样就下完了
在这里插入图片描述
创建文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

案例二

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值