美文网首页
使用 Maven 构建应用

使用 Maven 构建应用

作者: 索伦x | 来源:发表于2018-12-31 13:31 被阅读0次

    引言

    1. 掌握Maven的网络模型
    2. 学会POM文件的制作
    3. 掌握Maven的常用命令
    4. 了解模块化编程思想

    Maven 简介

    Apache Maven是一个软件项目管理和综合工具。
    基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。

    为什么需要使用MAVEN

    • Maven之前我们经常使用Ant来进行Java项目的构建然后Ant仅是一个构建工具, 它并未对项目的中的工程依赖以及项目本身进行管理, 并且Ant作为构建工具未能消除软件构建的重复性, 因为不同的项目需要编写对应的Ant任务。

    • Maven作为后来者, 继承了Ant的项目构建功能, 并且提供了依赖关系, 项目管理的功能, 因此它是一个项目管理和综合工具, 其核心的依赖管理, 项目信息管理, 中央仓库, 约定大于配置的核心功能使得Maven成为当前Java项目构建和管理工具的标准选择。

    Maven 安装配置

    1. 下载Apache Maven
      http://maven.apache.org/download.cgi
    2. 解压到指定文件夹,并且设置环境变量
      添加 M2_HOME 和 MAVEN_HOME、PATH
      添加 M2_HOME 和 MAVEN_HOME 环境变量到 Windows 环境变量,并将其指向你的 Maven 文件夹。
    3. 完成,以验证它,执行 mvn –version 在命令提示符下,如下图输出结果

    Maven 仓库

    中央仓库 = 私服,企业中通常的叫法

    Maven 仓库

    Settings.xml配置

    settings.xml是maven的全局配置文件
    Settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。

    • 配置优先级
      需要注意的是:局部配置优先于全局配置。 配置优先级从高到低:pom.xml> user settings > global settings 如果这些文件同时存在,在应用配置时,会合并它们的内容,如果有重复的配置,优先级高的配置会覆盖优先级低的。

    • 核心配置项示例:

    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <localRepository>d:\maven\repository</localRepository>
      <mirrors>
       <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>*</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror> 
        <servers>   
            <server>
              <id>nexus-snapshots</id>
              <username>deployment</username>
              <password>zdsh123456</password>
            </server>
        </servers>  
      </mirrors>
    </settings>
    
    • 设置本地仓库的地址
      <localRepository>d:\maven\repository</localRepository>
    • 下载镜像
      <mirror>....</mirror>
    • 中央仓库账号
      </server>... </server>

    Maven pom文件

    • 基本配置项
    <groupId>:组织
    <artifactId>:项目/模块名称
    <version>:版本号+类型
    <packaging>:打包类型,默认是jar,可以配置成war、zip、pom类型。
    <properties>:属性值标签,也叫变量标签。
    <dependencies> :依赖标签
    <distributionManagement> //发布管理
    <repository>
    <id>nexus-releases</id>
    <name>Local Nexus Repository</name>
    <url>http://10.105.7.100:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
    <id>nexus-snapshots</id>
    <name>Local Nexus Repository</name>
    <url>http://10.105.7.100:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
    </distributionManagement>
    
    • 指定项目JDK版本
    <build>
     <plugins>
     <plugin>
     <groupId>org.apache.maven.plugins </groupId>
     <artifactId>maven-compiler-plugin </artifactId>
     <version>2.1</version>
     <configuration>
     <source>1.8</source>
     <target>1.8</target>
     </configuration>
     </plugin>
     </plugins>
    </build>
    
    • 指定编码字符集
    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
    </properties>
    
    

    模块化编程

        <modules>
            <module>myshopx-web</module>
            <module>myshopx-api</module>
            <module>myshopx-common</module>
        </modules>
        <packaging>pom</packaging>
    

    多环境配置文件切换

        <build>
            <resources>
                <!-- 需要过滤替换的资源 -->
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                    <includes>
                        <include>JDBC.properties</include>
                    </includes>
                </resource>
            </resources>
        </build>
    
        <profiles>
            <profile>
                <id>dev</id>
                <!-- 默认激活开发配制,使用config-local.properties来替换设置过虑的资源文件中的${key} -->
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <build>
                    <filters>
                        <filter>filters/dev.properties</filter>
                    </filters>
                </build>
            </profile>
            <profile>
                <id>prd</id>
                <build>
                    <filters>
                        <filter>filters/prd.properties</filter>
                    </filters>
                </build>
            </profile>
        </profiles>
    

    mvn clean package -Pdev --开发环境
    mvn clean package -Pprd --投产环境

    Maven 常用命令

    mvn clean //清理项目
    mvn package //打包项目
    mvn install //打包并上传到本地仓库
    mvn deploy //打包并发布到私服, 同时更新本地仓

    相关文章

      网友评论

          本文标题:使用 Maven 构建应用

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