Maven简单了解

1. 简介

Maven是一个跨平台的项目管理工具,主要用于基于java平台的项目构建,依赖管理。

最大的特色:jar包管理

每一步执行,都会将这一步的前面都执行,比如执行打包package,那么前面的清理,编译,测试,报告都会执行

2.准备工作

2.1了解资源文件夹含义

src/main/java      存放项目的java文件

src/main/resources  存放项目的资源文件,如spring,hibernate的配置文件

src/test/java       存放所有的测试的java文件

src/test/resources   存放测试用的资源文件

target            项目输出位置

pom.xml  文件,简单理解,管理jar包的

2.2 仓库分类及调用顺序

中央仓库地址:

http://repo1.maven.org/maven2

2.3 原理简介

插件在哪里,请看:..${mavenhome}\repository\org\apache\maven\plugins下的

于是就有了常用maven指令:

?mvn compile :编译源代码

?mvntest-compile :编译测试代码

?mvn test : 运行应用程序中的单元测试

?mvn site : 生成项目相关信息的网站

?mvn clean :清除目标目录中的生成结果

?mvn package : 依据项目生成 jar 文件

?mvn install :在本地 Repository 中安装 jar

?mvn deploy:将jar包发布到远程仓库

?mvneclipse:eclipse :生成 Eclipse 项目文件

2.4 Maven的特点(依赖,继承)

个人理解如下:

依赖相当于调用其他类(jar格式),需要将引用的项目打成jar格式

再使用dependency标签,就可以引用其他项目的的类了

而继承相当于引用了其他类的jar包(包括类本身),将继承的项目的打成pom格式,然后其他项目要继承时,使用parent标签即可,比如

附加冲突解决:

如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有b.jar这个项目2.0的版本了,这里就会造成冲突,解决的办法是去除a.jar包依赖b.jar这个项目的1.0版本的依赖关系,让项目使用我已有的包。使用exclusion标签就可以了

2.5 pom文件简单说明

	<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/xsd/maven-4.0.0.xsd">
	   <!--pom 版本-->
	  <modelVersion>4.0.0</modelVersion>
	  <!--组id
	     maven 用坐标概念来标识 jar包
		  坐标=groupId+artifactId+version
	  -->
	  <groupId>com.maven.demo</groupId>
	  <!--构建物id :产品id-->
	  <artifactId>HelloFriend</artifactId>
	  <!--版本 :SNAPSHOT :测试版本 ,镜像版本   release :发行版本,最终版本-->
	  <version>0.0.1-SNAPSHOT</version>
	  <!--发布的是jar包  ,默认是jar包,也可以使war包等-->
	  <packaging>jar</packaging>
	  <!--项目名称 ,可写可不写-->
	  <name>MavenDemo1</name>
		<dependencies>
		  <!--jar包声明式依赖  依赖  junit4.9jar包-->
			<!-- <dependency>
			   用坐标来标识jar包: 坐标=groupId+artifactId+version
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.9</version>
				依赖的jar包的使用范围 : 当测试时使用该jar包
				    test 、 compile(默认)  

				<scope>test</scope>
			</dependency>	 -->	

		 <!--jar包声明式依赖  依赖 Hello.jar包
		 在依赖时,需要把那个依赖项目install放进Maven类库

		 继承时需要发布为pom格式
	         <packaging>pom</packaging>
	          再 install到类库中
      * compile,缺省值,适用于所有阶段,会随着项目一起发布。
      * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
      * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
      * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
      * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
		 -->
			<dependency>
			   <!--用坐标来标识jar包: 坐标=groupId+artifactId+version -->
				<groupId>com.maven.demo</groupId>
				<artifactId>Hello</artifactId>
				<version>0.0.1-SNAPSHOT</version>
				<scope>compile</scope>
			</dependency>
		</dependencies>

  <build>
     资源路径
    <sourceDirectory>src</sourceDirectory>
    <resources>
      <resource>
        <directory>src</directory>
        <excludes>
           忽略java文件,应该的
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
	</project>
	</build>

附加属性说明:

3.Myeclipse2014创建Maven工程

基本步骤:

2.1从http://maven.apache.org/官网上下载最新版本的maven,配置环境变量

2.2 dos窗口下测试:mvn -c

2.3配置本地仓库

当没有配置本地仓库是,默认路径:

Default: ${user.home}/.m2/repository,修改setting文件

比如: <localRepository>D:\javaSoftware\maven-3.2.5\repository</localRepository>

4.方式1   直接新建Maven  project项目

准备工作:

选择Maven project

如果出现列表,选择Internal,等会就出来了

选择quickstart或者webapp都行,都是基于插件构建

最后完成即可,你会发现,这种方式生成的资源目录不完整,需手动完善,于是有了第二种方式

5.方式2:建立web Project 添加Maven

5.1 建立Maven规范的web项目

完成后出现的结构如下:完整的,如果你有红色的感叹号,估计jar冲突,在pom中删除之或者屏蔽

你会发现,webRoot哪去了,看src

5.2 建立符合web project习惯的Maven项目

完成效果如下:是不是很熟悉的结构

6.部署

先了解下如何测试:

你会发现没有compile指令,在build里面建立compile即可

6.1 方式1

直接部署就可以了

或者:

6.2方式2  war包部署

你可以Run as –Maven install—>打包成war包,然后把war包放进tomcat的webapps里面就可以了

或者:

这个方式个人觉得等价于tomcat的生产模式;只不过war包生成的路径不同而已

好,基本就介绍到这了

时间: 2024-08-24 08:27:14

Maven简单了解的相关文章

Maven学习第4期---Maven简单使用

一.Maven常用命令 在学习使用Maven构建项目之前,先来了解一下Maven一些实用的命令.mvn的命令有很多,在项目开发中,理解了下面的几个常用命令后,运用maven就基本没有问题了.Maven常用的命令如下: 1.1 常用的mvn命令 mvn archetype:create 创建 Maven 项目mvn compile 编译主程序源代码,不会编译test目录的源代码.第一次运行时,会下载相关的依赖包,可能会比较费时mvn test-compile 编译测试代码,compile之后会生成

Maven 简单入门

目前我知道的java方面的构建工具有:ant,maven和gradle.其中ant较早,我也没用过.gradle出现最晚,吸取了ant和maven的一些优点,目前安卓开发主要使用的构建工具.这里不介绍gradle,介绍下maven. maven 的理念是约定俗成优于配置,怎么理解呢,就是maven默认情况下构建一个项目就会成一个默认的文件结构,像这样: 上面一个是个普通java工程(非web)的默认工程目录,如果要非要改也不是不行,但是遵守这样的规定有何不好呢? 根据上面的文件树,我们基本就可以

Maven简单教程(一)

       最近新项目得用到Maven,所以在网上在查阅的很多资料,却陷入了各种复杂中去.我一直觉得学习一门新的技术,首先先知道为什么学?其次是,最快的速度入门(自己能跑一个简单的demo).其他的在工作中碰到了在Google就好.不能学了一大堆,最后发现根本没用到,时间久了又都忘了. 问题:为什么学Maven?        解决了:团队开发,需要加载各种包,各个成员之间同步问题. Maven 是一个项目管理和构建自动化工具.Maven把项目依赖的包和版本,利用配置文件管理起来,将项目与依赖

Maven简单介绍

Maven是基于项目对象模型,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目.由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长. Maven是一个项目管理工具,它包含了一个项目对象模型 (Project

“MAVEN” 简单入门

1. MAVEN下载安装 下载地址:http://maven.apache.org/(根据自身系统版本下载相应版本的Maven) 安装:这个网上会有教程,很简单,大概只需设置一下环境变量里的PATH,可自行查找. 2. 在cmd下运行Maven 安装并配置完成后运行: 1. 输入代码:mvn -v(显示如下则说明安装成功) 2. 构建项目: 输入代码: mvn archetype:generate -DgroupId=com.my-app.app -DartifactId=helloworld

JavaEE Maven简单环境搭建

软件152 蒲双 一.下载 1.jdk1.8.zip(1.7以上为最佳): 2.eclipse-jee-mars-2.zip: 3.maven 3.3.9.zip: 4.maven仓库(.m2文件) 二.安装(解压) 1.选择一个工作盘,如 E:盘,建立目录 jee(这里根据自己的意愿建立目录,本人以建立 jee 为例: 2.将压缩包放到jee目录下,并解压,Jdk根目录为 E:\jee\jdk1.8:eclipse根目录为 E:\jee\eclipse,eclipse,工作目录为E:\jee\

使用maven简单搭建Spring mvc + redis缓存

注:此文参考并整合了网上的文章 <spring缓存机制>:http://blog.csdn.net/sidongxue2/article/details/30516141 <配置 Spring4.0 注解Cache+Redis缓存>:http://blog.csdn.net/ouyhong123/article/details/52162951 <spring整合redis缓存,以注解(@Cacheable.@CachePut.@CacheEvict)形式使用>: ht

Maven简单的学习与总结

参考资料:<Maven实战> 1.使用Maven的过程中遇到了不少问题,为了方便快速定位问题,自己系统学习了Maven仓库,生命周期,插件,坐标和依赖等,下面简单谈谈. (1)Maven坐标和依赖: Maven世界构件太多,为了减少寻找jar包等相对机械和耗时的问题,引入的坐标机制. 坐标包含的元素:groupId,artifactId,version,packaging,classifier. 依赖包含的元素:type,scope,optional,exclusions,这里需要说的一点是,

Springmvc+Spring+Mybatis+Maven简单的增删改查

这是适合新手搭建的最简单的SSM整合框架 这是我的下载资源网址:http://download.csdn.net/my/uploads 首先整合框架的话,至少需要了解一下这几个框架 Spring介绍 它是为了解决企业应用开发的复杂性而创建的.Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情.然而, Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java 应用都可以从 Spring 中受益. 简单来说, Spring 是一个轻