maven入门

什么是maven?

Maven是一个软件项目管理和理解工具。基于一个项目对象模型(POM)的概念,从中央信息中心,Maven管理项目的建立、报告和文档。


系统要求

JDK:
1.5或以上(这是执行maven -它仍然允许你建立对1.3和之前的JDK)。
内存:
没有最低要求。
磁盘:
没有最低要求。约100MB将用于本地存储库。
操作系统:
没有最低要求。在Windows,Windows NT以上或Cygwin是必需的
启动脚本。在Windows XP,Fedora Core和MAC OS X上测试。


安装maven

http://maven.apache.org/download.cgi下载maven,

(如果maven版本是3.3.x,JDK要求7以上)

我下的版本是3.0.5,JDK1.6,WIN7

解压maven,得到目录:

apache-maven-3.0.5/

bin

boot

conf

lib

LICENSE.txt

NOTICE.txt

README.txt


设置系统变量

MAVEN_HOME: d:\apache-maven-3.0.5

在系统变量PATH加上 ;%MAVEN_HOME%\bin,注意,一定要加分号。

可选变量,MAVEN_OPTS: -Xms256m -Xmx512m。

在命令行上输入 : mvn -version; 如看到下面信息表示安装成功


maven仓库位置

进入目录%M2_HOME%\conf,看到文件setting.xml

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository-->
  <localRepository>D:/apache-maven-3.0.5/repository</localRepository>
  
   <!-- 省略。。。 -->
</settings>

maven仓库默认是在~/.m2/repository,即是系统用户目录下的.m2\repository,如win7系统的Administrator用户,则仓库是C:\Users\Administrator\.m2\repository;

如果想修改仓库位置,则修改localRepository节点的值来指定仓库位置。

建立第一个maven项目

在命令窗口下,输入命令:

mvn archetype:generate -DgroupId=com.lam.mvn.helloworld -DartifactId=helloworld -Dpackage=com.lam.mvn.helloworld -Dversion=1.0-SNAPSHOT

等一会过去,

完成:

则生成了helloworld项目,项目结构:

进入项目目录helloworld,

cd helloworld
执行:

mvn package
当你第一次运行 maven 的时候,它会从网上的 maven 库 (repository) 下载需要的程序,存放在你电脑的本地库 (local repository) 中,所以这个时候你需要有 Internet 连接。

执行完命令,在项目目录下生成target目录

执行命令:

java -cp target/helloworld-1.0-SNAPSHOT.jar com.lam.mvn.helloworld.App

好了,第一个maven项目成功了。

POM

我们看到建立的第一个项目helloworld目录下,有src目录、pom.xml文件,其中pom.xml文件内容:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.lam.mvn.helloworld</groupId>
  <artifactId>helloworld</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>helloworld</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

在 POM 中,groupId, artifactId, packaging, version 叫作 maven 坐标,它能唯一的确定一个项目。有了 maven 坐标,我们就可以用它来指定我们的项目所依赖的其他项目,插件,或者父项目。一般 maven 坐标写成如下的格式:

    	groupId:artifactId:packaging:version

helloworld项目就会写成:

    	com.lam.mvn.helloworld: helloworld: jar: 1.0-SNAPSHOT

一般大项目会分成几个子项目。在这种情况下,每个子项目就会有自己的 POM 文件,然后它们会有一个共同的父项目。这样只要构建父项目就能够构建所有的子项目了。子项目的 POM 会继承父项目的 POM。另外,所有的 POM都继承了一个 Super-POM。Super-POM 设置了一些默认值,如POM可以加配置:

<properties>
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties> 


maven的隐藏变量

Maven提供了三个隐式的变量可以用来访问环境变量,POM信息,和Maven Settings

env

env变量,暴露了你操作系统或者shell的环境变量。便 如在Maven POM中一个对${env.PATH}的引用将会被${PATH}环境变量替换,在Windows中为%PATH%.

projetc

project变量暴露了POM。可以使用点标记(.)的路径来引用POM元素的值

  • ${basedir} 项目根目录
  • ${project.build.directory} 构建目录,缺省为target
  • ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
  • ${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
  • ${project.packaging} 打包类型,缺省为jar
  • ${project.xxx} 当前pom文件的任意节点的内容,如${project.groupId}、${project.artifactId}。
如:

<dependency>
      <groupId>${project.groupId}</groupId>
	  <artifactId>mymaven-core</artifactId>
	  <version>${project.version}</version>
    </dependency>

settings

settings变量暴露了Maven settings信息。可以使用点标记(.)的路径来引用settings.xml文件中元素的值。例如${settings.offline}会引用~/.m2/settings.xml文件中offline元素的值。


使用命令:

mvn help:effective-pom

查看POM运行时的全部内容。


maven自定义常量

有时项目会有很多依赖spring的,可能有spring-core:3.1.0.RELEASE,spring-beans:3.1.0.RELEASE,spring-context:3.1.0.RELEASE,这时,我们可以定义一个常量,写依赖配置时直接用常量就OK了,这样也方便于对版本号的管理:

pom.xml:

<properties>
  	
 	<!-- 自定义常量 -->
  	<springframework.version>3.1.0.RELEASE</springframework.version>
  </properties>

<dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-core</artifactId>
       <version>${springframework.version}</version>
 </dependency>
..


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值