基本概念

构建定义:把动态的Web工程经过编译得到的编译结果部署到服务器上的整个过程。
编译:java源文件[.java]->编译->Classz字节码文件[.class]
部署:最终在sevlet容器中部署的不是动态web工程,而是编译后的文件

清理clean:将以前编译得到的旧文件class字节码文件删除
编译compile:将java源代码编译成class字节码文件
测试test:自动测试,自动调用junit程序
报告report:测试程序执行的结果
打包package:动态Web工程打War包,java工程打jar包
安装install:将target下的jar安装到本地仓库,可以供其他项目使用。
部署deploy:将动态Web工程生成的war包复制到Servlet容器下,使其可以运行

常见命令

mvn clean //在target文件夹中的一切都将被删除

mvn compile //编译源代码

mvn test  //运行应用程序中的单元测试

mvn package  //把jar打到本项目的target下

mvn install  //把target下的jar安装到本地仓库,供其他项目使用.

mvn clean package  //清除target文件夹的文件,并重新将项目打包

mvn clean compile //清除target目录中的生成结果,将.java类编译为.class文件

mvn clean test //清除target目录中的生成结果,执行单元测试

mvn clean deploy //清除target目录中的生成结果,部署到版本仓库

mvn clean install //清除target目录中的生成结果,使其他项目使用这个jar,会安装到maven本地仓库中

 

常用maven命令总结:

mvn -v //查看版本

mvn archetype:create //创建 Maven 项目

mvn test-compile //编译测试代码

mvn site //生成项目相关信息的网站

mvn package //依据项目生成 jar 文件

mvn install //在本地 Repository 中安装 jar

mvn -Dmaven.test.skip=true //忽略测试文档编译

mvn clean //清除目标目录中的生成结果

mvn archetype:generate //创建项目架构

mvn dependency:list //查看已解析依赖

mvn dependency:tree //看到依赖树

mvn dependency:analyze //查看依赖的工具

mvn help:system //从中央仓库下载文件至本地仓库

mvn help:active-profiles //查看当前激活的profiles

mvn help:all-profiles //查看所有profiles

mvn help:effective -pom //查看完整的pom信息

 

IDEA打包常用命令:

clean package -Pdev  -DskipTests : -P后面是环境变量,可改选择dev开发环境,或其他环境进行打包。-DskipTests表示跳过测试。


maven的简单理解

 maven的简单理解

 

 

maven插件

maven-assembly-plugin 用来帮助打包用的。可以打包成jar包、war包。

详情见:  https://www.cnblogs.com/expiator/p/9926428.html

mvn clean compile assembly:single        //打包只生成一个jar包,名字里有jar-with-dependencies,可执行。

 

 

<properties>

可以在properties标签中,统一管理各个依赖的version版本。

然后通过 <version>${ }</version> 调用

<properties>
        <java.version>1.8</java.version>
        <es.version>5.4.1</es.version>
        <elasticsearch.version>5.4.1</elasticsearch.version>
        <fastjson.version>1.2.70</fastjson.version>

</properties>
 <dependencies>
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>${es.version}</version>
        </dependency>
        
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>
</dependencies>


<parent>

<parent>: 指定父级的模块,子模块可以使用父级模块的依赖。

比如指定 parent 为 spring-boot-starter-parent,引入spring-boot的依赖。

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

另外的,一个项目中经常会有 common、dao、 service等模块。

一些共用的工具类可以放到 common模块中,然后在各个模块中指定parent为 common模块,

这样的话,其他模块就可以统一调用common中的类和方法,不用重复写工具类了。

 

Maven仓库网址

需要添加依赖的时候,可以去以下网址找相关的dependency依赖。

https://mvnrepository.com/

 

pom.xml

pom.xml文件 ,示例如下:

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>org.example</groupId>
    <artifactId>Utils</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <java.version>1.8</java.version>
        <es.version>5.4.1</es.version>
        <elasticsearch.version>5.4.1</elasticsearch.version>
        <fastjson.version>1.2.70</fastjson.version>

    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>${es.version}</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>${es.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

 

相关文章:

  • 2021-05-06
  • 2022-01-28
  • 2021-12-17
  • 2021-10-02
  • 2022-01-03
  • 2021-06-21
  • 2021-08-07
  • 2021-09-21
猜你喜欢
  • 2021-11-06
  • 2021-10-30
  • 2021-11-26
  • 2021-06-15
  • 2022-12-23
  • 2022-12-23
  • 2021-07-07
相关资源
相似解决方案