maven管理JAVA项目pom.xml文件实例

maven是专门用于构建和管理Java相关项目的管理工具,提供了项目对象模型(POM)文件的新概念来管理项目的构建相关性和文档,其中pom.xml文件描述了maven项目的基本信息。

所属分类 JAVA

相关标签 配置Mavenpom

maven简介

maven是一个用于项目管理的综合工具。

  1. 提供了开发人员构建一个完整的生命周期框架。
  2. 可以自动完成项目的基础工具建设。
  3. 应对多个开发团队环境时,可以设置按标准在非常短的时间里完成配置工作。
  4. 让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。
  5. 最强大的功能就是能够自动下载项目依赖库,这也是最实用的地方。
  6. 是专门用于构建和管理Java相关项目的管理工具。

maven是意第绪语,依地语(犹太人使用的国际语),表示专家的意思。

用maven管理Java 项目,你就是专家了,哈哈哈!

pom.xml

POM代表项目对象模型,是maven中工作的基本单位,是一个xml文件,始终保存在项目根目录中的pom.xml文件。

建立一个maven项目,maven会检查你的pom.xml文件,以确定哪些依赖下载。

首先,maven将从本地资源库获得maven的本地资源库依赖资源。

如果没有找到,会从默认的maven中央存储库查找下载。

因此,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">
<!-- 指定当前POM模型的版本,对于maven2,maven3只能是4.0.0 -->
<modelVersion>4.0.0</modelVersion>
<!-- 项目编号,独一无二的。可以理解为父级package --> 
<groupId>com.mebugs</groupId>
<!-- 项目名称,与项目编号组成唯一的项目标识 -->
<artifactId>mebugsWeb</artifactId>
<!-- 项目的版本 -->
<version>1.0</version>
<!-- 项目产生的构件类型,例如jar、war,插件可以创建他们自己的构件类型 -->
<packaging>war</packaging> 
<!-- 项目名称,用来声明一个对用户而言比较友好的项目名称,文档使用 --> 
<name>Mebugs Maven Webapp</name> 
<!-- 项目主页的URL,maven产生的文档用。非必须 -->
<url>http://maven.apache.org</url>
<!-- 项目的详细描述,文档用。非必须 -->
<description>A maven project for mebugs</description>
<!-- 常用的版本号统一设置 -->
<properties>
    <!-- 定义spring的版本 -->
    <spring.version>4.3.10.RELEASE</spring.version>
    <!-- 定义jackson的版本 -->
    <jackson.version>2.9.3</jackson.version>
    <!-- 项目编码方式 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- jdk版本 -->
    <jdk.version>1.8</jdk.version>
</properties> 
<!-- 依赖列表 -->
<dependencies>
    <!-- 基础的依赖配置,版本号自行填写 -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        <!-- 依赖类型,可不写,默认类型是jar -->
        <type>jar</type>
        <!-- 依赖范围,可不写 -->
        <scope>compile</scope>
    </dependency>
    <!-- 依赖配置,取用配置的版本 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <!-- 取用上方提供的spring版本 -->
        <version>${spring.version}</version>
    </dependency>
    <!-- 依赖传递配置 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
        <!-- 依赖传递,用于解决版本冲突 -->
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
    </dependency>
    <!-- 外在依赖与取用 -->
    <dependency>
        <groupId>com.mebugsapi</groupId>
        <artifactId>mebugsApi</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <!-- 比如用于自身提供的业务jar包 -->
        <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/mebugsApi.jar</systemPath>
    </dependency>
</dependencies>
<!-- 构建项目所需要的信息 -->
<build>
    <!-- 产生的构件的文件名,默认值是${artifactId}-${version} -->
    <finalName>mebugsWeb</finalName>
    <!-- 子项目可以引用的默认插件信息 -->
    <pluginManagement>
        <plugins> 
            <!-- 添加插件,编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                    <showWarnings>false</showWarnings>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    <!-- 描述项目相关的所有资源路径列表,例如:属性文件,这些资源被包含在最终的打包文件里。--> 
    <resources>
        <resource>
            <directory>src/main/java</directory> 
            <!-- 包含 -->
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources/</directory>
            <includes>
                <include>**</include> 
            </includes>
        </resource>
    </resources>
</build>
</project>

补充说明

其他想要依赖的包,对应的dependency,在这个网站找。

http://mvnrepository.com/

可以再网站中一键生成dependency节点配置项。

如下图中所示:

/static/upload/post/1646007151214.jpg

米虫

做一个有理想的米虫,伪全栈程序猿,乐观主义者,坚信一切都是最好的安排!

本站由个人原创、收集或整理,如涉及侵权请联系删除

本站内容支持转发,希望贵方携带转载信息和原文链接

本站具有时效性,不提供有效、可用和准确等相关保证

本站不提供免费技术支持,暂不推荐您使用案例商业化

发表观点

提示

昵称

邮箱

QQ

网址

当前还没有观点发布,欢迎您留下足迹!

同类其他

JAVA

Struts2拦截器检测非法请求踢出登录

常规的WEB工程前后台都会设置相关校验规则,并且保持一致。因此服务端收到不符合校验的参数表示该请求存在恶意篡改行为,应当限制并踢出登录

Spring、SpringMVC和SpringBoot

Spring就像一个大家族,里面包含了很多衍生产品,其中最为出名的就是SpringMVC和SpringBoot,那么这三者之间是什么关系呢?SpringMVC和SpringBoot又专门用来做什么呢?

Eclipse中操作Git进行代码关联/拉取/推送

Eclipse可以直接通过GitRepositories直接创建本地项目与Git仓库关联,clone代码,同步、拉取以及推送代码,对于曾经经常使用SVN插件的小伙伴上手会相对容易。

一文理解SpringMVC框架核心

SpringMVC框架是围绕DispatcherServlet(前端控制器)展开的,本文描述SpringMVC的优点、各个核心类(角色)作用,并说明用户请求数据到最终视图返回完整的数据传输过程

JAVA线程池源码解析与使用

频繁的创建与销毁线程是非常浪费系统资源的行为,多线程编程中是必要考虑到线程复用,线程池就是实现线程复用的一种方式,看看JAVA的线程池如何让使用都有哪些关键参数

Servlet生命周期及数据流转过程

Spring家族大行其道的今天,很多人可能未必还记得JAVA中原生Servlet对象的一些知识,实际上SpringMVC就是基于Servlet进行的封装,记录Servlet对象生命周期及数据流转过程

选择个人头像

昵称

邮箱

QQ

网址

评论提示

  • 头像:系统为您提供了12个头像自由选择,初次打开随机为你选择一个
  • 邮箱:可选提交邮箱,该信息不会外泄,或将上线管理员回复邮件通知
  • 网址:可选提交网址,评论区该地址将以外链的形式展示在您的昵称上
  • 记忆:浏览器将记忆您已选择或填写过得信息,下次评论无需重复输入
  • 审核:提供一个和谐友善的评论环境,本站所有评论需要经过人工审核