maven构建和相关配置

 

 

 

maven简介

Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断(pom文件)能管理一个项目的构建、报告和文档等步骤。

Maven 是一个项目管理工具,可以对 Java 项目进行构建(构建jar包或者war包的过程)依赖管理(jar包的依赖关系,多模块的项目之间的依赖)。

项目的构建:在软件开发过程中最终要提交给客户成果物,j2ee一般提交的是jar或者war包。将软件代码编译打包成war包或者jar的过程叫作构建。

依赖管理:在软件开发过程中,大型项目由多个子项目协作完成,A项目依赖C项目,B项目也依赖C项目。

Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。

maven环境配置

步骤一:Maven 下载地址:http://maven.apache.org/download.cgi

步骤二:检查java环境

步骤三:解压缩maven的安装包

步骤四:配置maven的环境变量

MAVEN_HOME

D:\Program Files\apache-maven-3.6.3

在path中加入

%MAVEN_HOME%\bin;

步骤五:测试maven命令

 修改配置文件

D:\Program Files\apache-maven-3.6.3\conf\settings.xml

步骤一:修改中央仓库的地址,中央仓库指的是全球公用的,有部分公司涉及信息安全,普通程序员电脑无法上网。需要链接中央仓库,可以在本地设置私服。私服可以链接中央仓库。

159行

<mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

步骤二:修改本地仓库的地址(55行)

<!-- 配置本地仓库的路径-->

  <localRepository>D:\maven-respository</localRepository>

创建maven项目
idea中配置maven环境

在idea的file工具栏中选中File=>otherSettings=>defaultSettings

创建maven工程

 

 

 

 

改造默认的web工程结构。

添加三个文件夹

java

test

resources

并且将三个文件夹标记为不同类型的文件夹,在文件夹单击鼠标右键。

修改web.xml版本号

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>

 

 测试maven工程

在idea中配置tomcat

 

 

 

 

 

maven详解

 

pom文件

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

POM 中可以指定以下配置:

· 项目依赖

· 插件

· 执行目标

· 项目构建 profile

· 项目版本

· 项目开发者列表

· 相关邮件列表信息

 

实战案例:修改之前的传统web项目为maven项目

复制代码
<?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>4.0.0</modelVersion>
<!--  项目坐标-->
  <groupId>com.cloudwise</groupId>
  <artifactId>myMaven</artifactId>
  <version>1.0-SNAPSHOT</version>
<!--  标识项目打包的形式是jar还是war,springboot默认就是jar-->
  <packaging>war</packaging>
  <name>myMaven Maven Webapp</name><!-- FIXME 将其更改为项目的网站 --><url>http://www.example.com</url>
<!--  全局变量-->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <junit.version>4.9</junit.version>
  </properties>
<!--  引入的依赖jar包-->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
<!--      只参与测试-->
      <scope>test</scope>
    </dependency>
    <!-- fastjsonjar包 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.62</version>
      <scope>compile</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <!--      运行的时候不用-->
      <scope>provided</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
      <scope>compile</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
<!--      mysql的驱动载编译时不需要,只有在运行和测试的时候需要-->
      <scope>runtime</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
    <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <version>5.3.10</version>
    </dependency>
    <dependency>
      <groupId>com.cloudwise.oracle</groupId>
      <artifactId>ojdbc8</artifactId>
      <version>2.1.1</version>
      <scope>runtime</scope>
    </dependency>
  </dependencies>
  <!--编译设置-->
  <build>
    <finalName>myMaven</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
复制代码
mavne构建生命周期

clean 清理项目,删除上次编译留下的构建文件

跳过测试

mvn package -Dmaven.test.skip=true

 

Maven 有以下三个标准的生命周期:

· clean:项目清理的处理

· default(或 build):项目部署的处理

这是 Maven 的主要生命周期,被用于构建应用,包括下面的 23 个阶段:

 

 

 site:项目站点文档创建的处理(Maven Site 插件一般用来创建新的报告文档、部署站点等

 

 

 maven仓库

 

 

 

 maven插件

Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven 插件通常被用来:

· 创建 jar 文件

· 创建 war 文件

· 编译代码文件

· 代码单元测试

· 创建工程文档

· 创建工程报告

 maven依赖管理

 

 

中央仓库中的jar都是免费可以随意下载的,收费的jar在中央仓库没有,不允许下载。

将不免费的jar包打进本地仓库中。

 

将自己下载的包放到仓库里 并更改groupid路径

mvn install:install-file -DgroupId=com.cloudwise.oracle -DartifactId=ojdbc8 -Dversion=2.1.1 -Dpackaging=jar -Dfile=D:\ojdbc8.jar

<dependency>
  <groupId>com.cloudwise.oracle</groupId>
  <artifactId>ojdbc8</artifactId>
  <version>2.1.1</version>
  <scope>runtime</scope>
</dependency>

 (在终端运行命令将常用的包从maven中央仓库下载文件到本地:
mvn help:system)不太懂,用的的时候再完善

mvn help:system
没有错误的话,打开 /usr/local/maven_repository 会发现多了很多文件

mvn常用

1 mvn clean //清空class文件
2 mvn coplile //编译
3 mvn package //打包
4 mvn test //测试
5 mvn install //打包并上传至本地仓库
6 mvn deploy //上传到远程仓库
7 mvn -Dmaven.test.skip=true //跳过测试

posted @   SimoonJia  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示