`
mars914
  • 浏览: 433176 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Maven从入门到精通系列之一

阅读更多

 

1.概述

Apache Maven一个潜在的基于javaapache ant的构建工具的替代者。两者之间的比较:

 

一、ant脚本是可以直接运行在maven中的。mavenant最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POMproject object model)。这个模型定义了项目的方方面面,然后各式各样的脚本在这个模型上工作,而ant完全是自己定义,显然maven更胜一筹。

 

二、Maven对所依赖的包有明确的定义,如使用哪个包,版本是多少,一目了然。而ant则通常是简单的inclde 所有的jar。导致的最终结果就是,你根本无法确定JBoss中的lib下的commonlogging 是哪个版本的,唯一的方法就是打开 METAINF 目录下MANIFEST.MF。估计JBoss迟早会转向Maven的。

 

三、Maven基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jartldpom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。

 

四、maven有大量的重用脚本可以利用,如生成网站,生成javadocsourcecode reference,等。而ant都需要自己去写。试试 maven site 的效果。

第五:maven目前不足的地方就是没有象ant那样成熟的GUI界面,不过mavengui正在努力中。目前使用maven最好的方法还是命令行,又快又方便。

 

 

 

2.安装

下载Maven.目前的版本是3.0.3

http://maven.apache.org/download.html#Maven_Documentation

解压缩后,新建环境变量Maven_Home到maven目录;在环境变量path中增加maven的bin目录。

在命令行输入

Mvn -version

显示

Maven version: 3.0.3

则安装成功。

3.生成一个Maven工程

在命令行中,进入你常用的项目文件夹,输入

mvn archetype:create -DgroupId=com.maven.test -DartifactId=maven-demo

如果网络配置(详见5)正确,maven就会下载需要的文件,执行任务,最终显示“BUILD SUCCESSFUL”,并生成maven-demo目录。

让我们看一下mvn对项目标准的目录组织:

 directory                                                 description


    /maven-demo/pom.xml                        描述项目对象模型(Project Object Model)。  

/maven-demo/src/                                      Sources
    /maven-demo/src/main/java/                        Java source tree
    /maven-demo/src/test/java/                         Java unit tests
    /maven-demo/src/main/resources/                 Java classpath resources
    /maven-demo/src/test/resources/                  Resources for unit-tests
    /maven-demo/target/classes/                        compiles classes
    /maven-demo/target/test-classes/                 compiles test classes
    /maven-demo/target/dots                             other plugins' output

/maven-demo/src/main/webapp                      root of webapp

 

Build the project 构建项目

cd 到maven-demo目录下,执行下面命令

mvn package

此命令执行的过程有:

    1、validate

    2、generate-sources

    3、process-sources

    4、generate-resources

    5、process-resouces

    6、compile

你可以通过以下命令测试新编译和打包的jar文件

java -cp target/maven-demo-1.0-SNAPSHOT.jar com.maven.test.App

输出以下结果:

Hello World!

 

4.Maven 常用命令

maven定义的默认的生命周期命令

• validate: 验证项目是否正确以及相关信息是否可用

• compile: 编译工程源代码   

• test:  运行测试  

• package: 根据事先指定的格式(比如jar),进行打包。.
• integration-test: 部署到运行环境中,准备进行集成测试   

• verify: 对包进行有效性性和质量检查 

• install: 安装到本地代码库
• deploy: 在集成或发布环境,将包发布到远程代码库.

 

  除了默认生命周期外的两阶段

• clean: 清除以前的构建物
• site: 生成项目文档

 

可以通过对目标及命令的组合使得一个命令完成多个功能,比如:

 

mvn clean dependency:copy-dependencies package

此命令将清理项目、复制所依赖的包、对工程进行打包

 

相当于按顺序执行

mvn clean

mvn dependency:copy-dependencies

mvn package

 

5. 网络设置

maven运行时需要网络环境。如果你的网络需要代理,则要在maven目录的conf/settings.xml中设置。

找到<proxies>节点,可根据自己实际环境设置。

 

分享到:
评论

相关推荐

    maven从入门到精通系列教材

    **Maven:从入门到精通系列教材** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和部署过程。本资源集合包括7个文档,旨在帮助初学者逐步掌握Maven,从基础配置到高级应用,全...

    超详细Maven快速入门到精通.txt打包整理.zip

    标题"超详细Maven快速入门到精通.txt打包整理.zip"表明这是一个关于Maven的全面教程,涵盖了从基础到高级的各个方面,旨在帮助用户快速掌握Maven的使用。Maven是一个Java项目管理和综合工具,由Apache软件基金会开发...

    Maven入门到精通

    **Maven入门到精通** Maven,一个强大的Java项目管理工具,由Apache软件基金会开发,旨在简化构建过程,提供统一的构建系统,并通过依赖管理和项目信息管理,帮助开发者更高效地构建、测试和部署Java应用。它通过...

    maven入门到精通

    ### Maven入门到精通知识点详解 #### 一、Maven简介及背景 - **Maven**是一种基于项目对象模型(POM)的软件项目管理和综合工具。它可以帮助开发者理解项目的构建周期和依赖关系,使得项目的构建过程自动化,提高了...

    Maven从入门到精通的吐血之作.pdf

    通过阅读《Maven从入门到精通的吐血之作.pdf》这样的文档,我们可以学到如何使用Maven来管理Web应用的开发。 一、知识准备 1.1 项目模型POM POM(Project Object Model,项目对象模型)是Maven中的核心概念,它是...

    Maven使用实战-从入门到精通实践【张振华.Jack】

    Maven使用实战-从入门到精通实践【张振华.Jack】 Maven简介、Maven主要做什么用? 项目对象模型(POM) 坐标(Coordinates)、打包方式(Packaging)、项目描述 项目子父级关系(parent) 依赖管理(dependency),冲突了...

    Jetpack架构组件从入门到精通

    jetpack从入门到精通.pdf 系统性的介绍 jetpack 组件的基础学习资料 ,带大家完整的学习Jetpack组件,由浅入深。 官网学习地址:https://developer.android.google.cn/jetpack/getting-started Jetpack 是一个由多...

    超详细Maven快速入门到精通[视频课程].txt打包整理.zip

    本教程通过"超详细Maven快速入门到精通[视频课程].txt打包整理.zip",旨在帮助初学者快速掌握Maven的基本用法并逐步进阶到精通。 1. Maven基础: Maven基于项目对象模型(Project Object Model,POM),它定义了...

    MyBatis入门到精通

    这篇“MyBatis入门到精通”的学习资料是针对初学者设计的,旨在帮助新手快速掌握MyBatis的基本用法和高级特性。 1. **MyBatis简介** MyBatis是由Clinton Begin创建的开源项目,它是一个基于Java的持久层框架,消除...

    Java Web从入门到精通光盘源码1-15

    这个"Java Web从入门到精通光盘源码1-15"提供了学习者深入理解和实践Java Web应用开发的资源。以下是一些核心知识点的详细说明: 1. **Servlet与JSP**:Servlet是Java Web的基础,用于处理HTTP请求并生成动态响应。...

    Springboot入门到精通(超详细文档)

    Starter poms是一系列预配置的Maven或Gradle依赖,它们帮助你快速添加所需的Spring模块。 在创建第一个Spring Boot项目时,你可以选择使用Spring Initializr,这是一个在线工具,可以生成一个包含基本依赖的项目...

    maven 入门到精通.txt

    ### Maven 入门到精通 #### 一、Maven 概述 1. **定义**: - Apache Maven 是一个项目管理...通过以上内容的学习,可以系统地掌握Maven的使用方法,从入门到精通Maven的各项技术要点,从而更好地应用于实际项目中。

    Eclipse从入门到精通

    对于初学者和有经验的开发者来说,"Eclipse从入门到精通"是一本不可多得的教程,旨在帮助读者全面掌握Eclipse的使用技巧,提升开发效率。 首先,我们需要了解Eclipse的基础操作。这包括安装和配置Eclipse,设置工作...

    Springboot入门到精通.pdf

    起步依赖是Spring Boot提供的一种特殊形式的Maven或Gradle依赖,包含了一组预设的、相互协作的库,例如`spring-boot-starter-web`,它涵盖了开发Web应用程序所需的基础组件,如Spring MVC、Tomcat嵌入式服务器等。...

    springboot从入门到精通

    本资源包"springboot从入门到精通"旨在帮助初学者和进阶者全面掌握SpringBoot的核心概念和技术。 一、SpringBoot基础 SpringBoot的基础部分涵盖了如何创建第一个SpringBoot项目,通过起步依赖(Starters)简化Maven...

    Java Web从入门到精通光盘17-2

    在"Java Web从入门到精通光盘17-2"中,我们可以预见到一系列关于这个主题的教程或实例,旨在帮助初学者和进阶者掌握Java Web开发的核心概念。 首先,Java Web开发主要涉及Servlet、JSP(JavaServer Pages)、JSTL...

    魔乐科技:从入门到精通Java全部源码

    总之,"魔乐科技:从入门到精通Java全部源码"是一个宝贵的教育资源,涵盖了Java学习的各个方面,无论你是初学者还是进阶者,都能从中受益匪浅。通过实际操作和不断练习,你将能够熟练掌握Java编程,为你的IT职业生涯...

    Java Web从入门到精通光盘18-21

    【Java Web从入门到精通光盘18-21】是一个涵盖了Java Web开发基础到进阶的教程资源,旨在帮助初学者系统学习并掌握这一领域。在这个光盘中,你可能会遇到一系列关于Web应用程序开发的知识点,包括但不限于以下内容:...

    Spring Cloud Alibaba 从入门到精通1

    【Spring Cloud Alibaba 从入门到精通1】 Spring Cloud Alibaba 是一套基于阿里巴巴集团内部中间件实践经验,为Java开发者提供的微服务解决方案。它旨在简化云原生应用的开发过程,尤其是在Spring Cloud生态中,...

Global site tag (gtag.js) - Google Analytics