美文网首页MAVEM
<JavaWeb>Maven核心概念(一)

<JavaWeb>Maven核心概念(一)

作者: 普通一般社会人 | 来源:发表于2016-04-19 22:05 被阅读40次

约定(惯例)优先于配置

这个原则说对于一些配置信息,maven会有给定的default默认值,这样,就不需要用户去手动配置更多的信息了。比如,maven-complier的版本。
标准的目录结构
如果没有修改配置的话,我们的代码存放在src/main/java目录下,*.class在target目录下,配置及静态文件默认放在src/main/webapp/WEB-INF目录下。我们只需要将源代码放置到正确的目录下,就可以了。
项目描述符pom.xml
这个文件的名字默认即为pom.xml。

pom.xml

pom(project object model),定义一个maven项目,存放项目的类型,项目的配置信息。artifact(构建)于project几乎等价。
项目类型:<package>:pom,jar,war...
坐标:<groupId><artifactId><version>
属性:<properties>
属性标签定义常量,它的格式如下:

<properties>
    <name>content</name>
</properties>

使用时,采用${name}的方法来获取。当我们需要改动一个变量时,只用更改一处即可。
依赖<dependencies>
构建配置<build>
构建<build>标签里存放的主要是maven构建的配置项,比如插件等。
多项目继承关系
子项目:<parent>和父项目<modules>,分别存放项目的信息。
项目总体信息
更多存在于开源项目中,存放开源协议,作者等信息。

存在的问题

我们的项目一般都是拆分为多个子项目来进行开发的,在这个过程中,总是会出现多个项目配置信息重复的现象,修改的时候会很繁琐,可能会出现依赖版本不一致等情况,会导致配置管理混乱。
针对这个问题,我们借助面向对象的思想,采用集成的思路,将公共部分存放到父节点中。

继承:

继承存在Override重写的现象,子pom的配置优先。
可继承项
坐标属性,依赖配置,插件配置和一般性信息,如开发者信息等。
对于pom来说,也有继承的根,所有的pom都继承自Super pom文件。它是maven的组成部分,存放在maven的安装目录下。如果没有显式指明,默认从super pom继承。Super pom定义了一些信息,如默认的文件结构,默认的编译器版本,默认的中央仓库等。

mvn help:effective-pom//查看继承后的pom

手动继承
如果我们想要使用手动继承的方式来管理配置的话,需要借助<parent>元素,来声明继承的对象。

多么块构建

父项目
类型为pom,定义<modules>
子项目
配置<parent>,类型一般为war或者jar。
我们即使用继承,又使用组合,将多个子模块聚合到父pom中,在构建时会方便许多。

相关文章

  • <JavaWeb>Maven核心概念(一)

    约定(惯例)优先于配置 这个原则说对于一些配置信息,maven会有给定的default默认值,这样,就不需要用户去...

  • <JavaWeb>Maven核心概念(二)

    依赖管理,仓库及构建生命周期 依赖配置 在之前的笔记中,我们详细的给出了依赖声明的语法规则,其中,最重要的,就是依...

  • <JavaWeb>Maven核心概念(三)

    插件及总结演示 获取插件可配置信息 在Maven核心概念(二)中,我们讲解了如何获取一个插件的可...

  • <JavaWeb>Maven简介

    笔记总结自网易云课堂Maven课程 什么是Maven Maven是由Apache基金会出品的,使用JAVA编写的开...

  • <JavaWeb>手动进行Maven部署实例

    Maven生成项目 之后,配置web.xml文件,书写Java程序,配置pom.xml文件。配置pom文件 另外,...

  • Maven的核心概念

    Maven是一个强大的Java项目构建工具 什么是构建工具? 构建工具是将软件项目构建相关的过程自动化的工具。构建...

  • Maven的核心概念

    一、Maven坐标和仓库   Maven坐标是一个唯一的标识,用于表示我们的项目的一些信息或者引用jar包的位置。...

  • Maven学习总结--Maven核心概念

    一、Maven坐标 1.1、什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点。 1.2、Maven...

  • 企业级项目管理工具使用Maven之Nexus搭建私服

    1、序言 Nexus可以做Maven私服,私服不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库...

  • Maven 核心概念与理论

    Maven概念模型与依赖解析机制 Maven根据项目的pom.xml文件,把它转化成项目对象模型(POM),这时要...

网友评论

    本文标题:<JavaWeb>Maven核心概念(一)

    本文链接:https://www.haomeiwen.com/subject/fzrzlttx.html