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

Maven学习

 
阅读更多

groupId,artifactId,packaging,version 是Maven的坐标, 它们唯一标识了一个项目,name,url是pom提供的描述性元素,它们给人提供可阅读的名字

groupId:团体名,组织名

artifactId:在groupId下表示一个单独项目的唯一标识

version:版本号, 加SNAPSHOT表示正在开发中

packaging:项目类型,默认为jar,打包后文件格式。类型为jar的,输出jar文件,类型为war的项目,生成一个web应用

1、创建最简单的项目

在d:project下创建

命令:mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=demo

执行命令后, 就会在d:project创建文件夹为demo的项目

项目名:默认为-DartifactId=demo指定的名

java包名:默认为-DgroupId=ce.demo.mvn指定的名, 但也可以指定包名使用参数:-DpackageName=com.demo.mvn2

 

1、Maven插件和目标

命令:mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=demo

 

archetype称为插件

create称为目标(即明确的任务)

 

一个插件包多个目标

上条命令中, create目标定义了一个配置属性archetypeArtifactId,它有一个默认值maven-archetype-quickstart。maven-archetype-quickstart生成一个最小项目的躯壳,包括一个POM和一个类。Archetype插件可以用来生成复杂如web应用的项目,以及使用Archetype插件自定义自己的项目集合。

mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart

 

2、在pom.xml所在的文件下执行

mvn package   打包,生成jar文件

mvn install 安装到本地仓库

 

3、Maven本身不知道如何编译你的代码,不知道如何生成jar文件,它将这些任务交给了Maven插件,如Compiler插件和Jar插件,在需要的时候,将它们下载, 并定时的从Maven中央仓库更新。当你下载Maven的时候,只是一个基本躯壳的Maven核心,它知道如何解析命令行,管理classpath,解析POM文件,在需要的时候下载Maven插件。这样,Maven核心与插件分离。

 

4、一个生命周期的阶段可能绑定多个目标,如:mvn package 有多个目标被执行, 当执行mvn package时, package以前的生命周期也被执行

 

5、Maven仓库存放的文件目录格式:

/groupId/artifactId/verfsion/<artifactId>-<version>.<packaging>

 

6、Maven依赖有传递性,A依赖B,B依赖C,D,  那么只需要定义A依赖B即可,

 

7、创建的简单项目中依赖junit, 在.m2/repository/junit/junit/3.8.1下有junit-3.8.1.jar和junit-3.8.1.pom(定性所依赖的),还有Maven用来验证已下载构件准确性的校验和文件

 

8、当为项目创建jar文件时,它的依赖不会被一起在生成的构件中,只是将当前的项目java文件编译

 

9、当用Maven生成war,可以配置Maven,将所依赖的构件也包含进来。

如:依赖的Servlet 想在编译的时候需要,生成war包时,不将servlet包含进来,可以给依赖的servlet设置provided范围,这样在编译的时候使用, 在生成war包时,不将其包含在war包中

 

10、mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch04 -DartifactId=simple-weather -DpackageName=org.sonatype.mavenbook -Dversion=1.0

 

11、可在在pom.xml文件中,定义组织,法律,开发人员信息

 

12、archiveClasses 将资源文件打成jar形式,testFailureIgnore忽略测试失败

 

    <build>

       

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-war-plugin</artifactId>

                <version>2.1-beta-1</version>

                <configuration>

   <!-- archiveClasses 将资源文件打成jar形式 -->

                    <archiveClasses>true</archiveClasses>

                </configuration>

            </plugin>

        </plugins>

    </build>

 

<plugin>

  <groupId>org.apache.maven.plugins</groupId>

  <artifactId>maven-surefire-plugin</artifactId>

  <configuration>

    <testFailureIgnore>true</testFailureIgnore>

  </configuration>

</plugin>

 

13、跳过单元测试

<plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-surefire-plugin</artifactId>

    <configuration>

        <skip>true</skip>

    </configuration>

</plugin>

 

14、archetypeArtifactId=maven-archetype-webapp

mvn archetype:create -DgroupId=com.jd.card -DartifactId=card -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0

 

15、子模块中只设置artifactId, groupId和version没有设置,默认从父模块继承了。实际上子模块从父模块继承一切东西,包括依赖,插件配置等等。

 

16、version的值为${project.version},这个值是一个属性引用,指向了POM的project/version的值,也就是这个POM对应的version,依赖其他模块时使用, 使得各模块的版本号是一致的。

 

17、依赖范围

compile(默认,对于编译、测试、运行三种classpath都有效)、test: 测试依赖范围(JUnit)、provided: 已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器已经提供,就不需要Maven重复地引入一遍。

分享到:
评论

相关推荐

    maven学习.zip

    本教程"maven学习.zip"主要关注的是Maven插件的使用,下面将详细介绍Maven插件及其在实际开发中的应用。 **1. Maven插件的概念** Maven插件是Maven生态系统的核心组成部分,它们提供了各种功能,如编译源代码、打包...

    maven学习资源整理

    ** Maven学习资源整理** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。本资源包是为初学者和有经验的开发者准备的一系列Maven学习资料,旨在帮助你更好地理解和...

    Maven学习极品,对于初学者而言非常好的资料,极力推荐

    【 Maven学习极品:初学者的完美指南】 Maven,一个由Apache软件基金会开发的项目管理工具,是Java世界中不可或缺的一部分。它简化了构建过程,通过自动管理项目的依赖关系,使得开发者可以专注于编写代码,而不是...

    Maven学习指南.pdf

    【Maven学习指南】 Maven是一个强大的项目管理工具,源于Apache组织,专为基于Java平台的项目构建、依赖管理和项目信息管理而设计。它通过一个明确的项目对象模型(POM)来描述项目,利用其内置的项目生命周期和...

    Maven学习笔记.zip

    **Maven学习笔记** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过使用一个项目对象模型(Project Object Model,POM),XML格式的配置文件,定义了...

    maven学习笔记maven学习笔记

    maven学习笔记maven学习笔记maven学习笔记

    Maven学习文档

    ### Maven 学习文档知识点详解 #### 一、Maven简介 Maven 是一款非常流行的 Java 项目的构建管理和依赖管理工具。它可以帮助开发者自动化构建过程,简化项目管理和部署流程。通过使用 Maven,开发者可以轻松地管理...

    Maven常用命令 Maven Maven学习

    Maven常用命令 Maven Maven学习

    maven学习文档

    ### Maven学习文档知识点详解 #### 一、Maven概述与安装目录介绍 Maven是一款流行的自动化构建工具,广泛应用于Java项目的构建过程中。它通过一种项目对象模型(Project Object Model,简称POM)来管理项目的构建...

    maven学习文档.docx

    maven学习文档,包含常见错误和docker的集成,包含多模块开发,不同的profile的开发,和一些插件基础属性说明

    Maven学习书籍

    **Maven学习书籍** 《Maven实战》是一本专门针对Maven这一强大的Java项目管理和构建工具的书籍。作为国内首部Maven领域的专著,它深入浅出地讲解了Maven的核心概念、工作原理以及实际应用,是Java开发者进阶必备的...

    Maven学习手册

    **Maven学习手册** 在软件开发领域,Maven是一个强大的构建工具,主要用于Java项目管理。它简化了构建过程,依赖管理和项目的标准化。本手册旨在帮助开发者深入理解和有效地使用Maven,结合作者的实际项目经验,...

    maven学习的基础资料

    【Maven学习的基础资料】 Maven是一个强大的项目管理和综合工具,主要面向Java开发人员。它通过提供一个标准的项目生命周期框架,大大简化了项目的构建、文档生成、依赖管理、源码分布等任务。Maven的核心理念是...

    maven学习资料 maven学习资料 maven学习资料 maven学习资料

    maven学习资料

    Maven学习必要插件

    本资源“Maven学习必要插件”提供了一套预配置好的Maven环境,以便开发者可以快速投入到Maven的使用中。在本文中,我们将深入探讨Maven的核心功能、常用插件以及如何配置和使用这些插件。 1. **Maven核心功能** ...

    maven学习指南java(经典,实例)

    通过本教程,读者将逐步学习到如何设置Maven环境、如何编写和理解POM文件、如何利用Maven的生命周期进行项目的构建和管理。以上内容不仅会为初学者提供Maven入门的全面指导,还会通过实际例子帮助开发者深入理解并...

    强悍的Maven学习资料

    **Maven 学习概要** Maven 是一个强大的项目管理工具,主要用于构建、管理和部署 Java 项目。它通过提供一套标准的项目对象模型(Project Object Model,POM)和生命周期概念,使得开发者能够轻松地处理项目的构建...

    maven学习相关资料

    该资料主要讲maven的基础用法,安装和使用等。还有maven常常被使用到的一些命令和用法。注意事项等。

    maven学习资料汇总

    里面包含:两本maven电子书(《Maven权威指南中文版》和《Maven实战》)和两个文档(《在maven和jetty环境下eclipse的调试》、《基于Maven的Spring_+_Spring_MVC_+_Mybatis的环境搭建》),内容皆精品。

Global site tag (gtag.js) - Google Analytics