POM文件学习笔记

<?xml version="1.0" encoding="UTF-8"?>
<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">

    <!--modelVersion: 指定当前POM模型的版本,如果安装的是Maven2或者Maven3,那么这个值只能是4.0.0 -->
    <modelVersion>4.0.0</modelVersion>

    <!--groupId:项目的唯一标识符,通常使用全限定的包名来区分该项目和其他项目,并且构建时生成的路径也是由此生成-->
    <groupId>com.java.world</groupId>

    <!--artifactId:构建标识符,和groupId一起唯一标识一个构件,不能有两个不同的项目拥有同样的groupId 和 artifactId
     在某个特定的groupId下,artifactId也必须是惟一的。
     构件是项目产生或使用的一种东西,Maven 为项目产生的构件包括:jar包,源码,二进制发布和部署包WAR等。
     -->
    <artifactId>helloworld</artifactId>

    <!--version:项目当前版本,格式为:主版本.次版本.增量版本-限定版本号 -->
    <version>1.1.0-SNAPSHOT</version>

    <!--packaging:项目产生的构件类型,如jar,war,ear,pom等。-->
    <packaging>jar</packaging>

    <!--name:项目名称,Maven产生的文档使用,也可以不写。-->
    <name>MavenWorld</name>

    <!--url:项目主页的URL,Maven产生的文档使用,也可以不写-->
    <url>http://www.ansq.com</url>
</project>
POM: Project Object Model, 也就是项目对象模型,它是Maven项目的核心所在。
POM文件主要包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。


<project> 标签是所有pom.xml的根元素,它声明了一些POM相关的命名空间及xsd元素。

xmlns:xml namespace的缩写。

xmlns:xsi 当前xml文件需要使用一些规则来进行验证,这些规则都定义在一个外部的xsd验证文件当中。
需要将这些外部的文件引入,而这个引入的功能就在http://www.w3.org/2001/XMLSchema-instance当中。
xml schema:它是基于XML格式的文档结构描述标准,通常简写为XSD(xml schema define)
引入无命名空间的schema文件,使用xmlns:xsi的noNamespaceSchemaLocation这个元素。
引入带命名空间的schema文件,使用xmlns:xsi的schemaLocation元素。

xsi:schemaLocation 指定命名空间对应的验证文件。它的值分为两部分,前面是命名空间的名字,后面是xsd文件的地址。
表示为当前命名空间引入一个验证文件,以便对当前xml文件是否符合语法规范进行解析与验证。
被引入的xsd文件是XML文件自定义的语法或格式解析器。xsd文件也是一个xml文件,遵循xml的格式。

Maven命令:

mvn clean compile
clean:用于清理target目录
compile:编译命令
Maven的生命周期是抽象的,本身并不做任何工作,所有的工作都是交由插件来完成的;
打包命令:mvn clean package
生成一个JAR文件helloworld-1.0.jar
JAR文件的命名格式:artifactId-version.jar
测试类文件并不参与打包的操作。

MavenArchetype原型

MavenArchetype原型。
MavenArchetype指的是一个项目的模板。
在使用 Maven的过程当中,可以根据原型 Archetype来生成具有特定结构的项目。
也可以从通用的项目当中来抽取结构从而生成 Archetype模型。
Archetype与之前的功能插件一样,它也是一种插件。
本节课程学习如何在命令行下使用 Maven Archetype
在不同版本的情况下,使用 MavenArchetype的命令方式也不是完全一样的。
比如在 Maven2当中,如果没有指定 Archetype 插件的版本,那么 Maven就会去下载最新的版本,而最新的版本却不一定是稳定的,从而可能会导致运
行失败
那么到了 Maven3 当中,即使没有指定版本, Maven也会去解析最新的而且是最稳定的版本,因此它是安全的。
Archetype对应的插件是: maven-archetype-plugin。
如果使用的是比较旧的 Archetype 版本,那么在创健建一个项目的结构的时候,使用的命合是:
mvn org.apache.maven.plugins: maven-archetype-plugin:2.0-alpha-5:generate。
简单地说,它的命合格式为:
groupId:artifactId:version:goal。
org.apache.maven.plugins 官方插件的groupId
maven-archetype-plugin 是插件的 artifactId
2.0-alpha-5 是插件的稳定版本。
generate 是要进行的操作,也就是要使用的插件目标。
在 Maven3 当中, Archetype操作的命令为:
mvn archetype:generate
在执行这个命令的时候,发现它会产生停顿,是什么原因导致当前的界面没有任何的动作了?
mvn -X archetype:generate
它能够显示调试级别的日志。
当使用 mvn archetype:generate命令去创建一个项目的结构的时候,在项目创建的过程当中, Maven会去下载一个与 Archetype相关的目录文件,
叫做 archetype-catalog.xml
一方面因为此文件比较大,大概有5M多,还有可能就是文件地址在 Maven 命令方式中变得不可访问了,从而导致访问网络上这个文件变得非常耗时。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值