码迷,mamicode.com
首页 > 其他好文 > 详细

Maven简单了解

时间:2016-05-12 12:02:25      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

   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包生成的路径不同而已


好,基本就介绍到这了








Maven简单了解

标签:

原文地址:http://blog.csdn.net/u011165335/article/details/51378746

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!