# maven 创建项目及常用命令

# maven 介绍:

主要功能主要分为 5 点,分别是依赖管理系统、多模块构建、一致的项目结构、一致的构建模型和插件机制

maven 创建项目及常用命令

前提:配置 windows 环境变量,JAVA_HOME 和 M2_HOME

# 验证 maven 是否安装好:

进入 cmd 命令行:输入:mvn -v //进行验证 maven 是否安装好

C:\Users\Administrator>mvn -v
1

查看 mvn 的帮助

C:\Users\Administrator> mvn -help

# Maven 最主要的命令:

mvn clean compile、mvn clean test、mvn clean package、mvn clean install。
1

执行 test 之前是会先执行 compile 的,执行 package 之前是会先执行 test 的,而类似地,install 之前会执行 package。

maven 项目的目录结构图:

maven设计结构

一、maven 命令创建项目的两种方式:

  1. archetype:generate 按照提示进行选择

  2. archetype:gennerate -DgroupId=组织名,公司网址的反写+项目名

    ​ -DartifactId=项目名-模块名

    ​ -Dversion=版本号

    ​ -Dpackage=代码所存在的包名

3.Maven 创建普通 java 项目

mvn archetype:create     -DgroupId=packageName     -DartifactId=projectName
1

4.Maven 创建 web 项目

mvn archetype:create    -DgroupId=packageName    -DartifactId=webappName    -DarchetypeArtifactId=maven-archetype-webapp
1

5.简化版生成 web 项目

mvn archetype:generate -DgroupId=otowa.user.dao -DartifactId=user-dao -Dversion=0.0.1-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp
1

# 例如:构建一个 maven 的 web 项目

web 项目是需要服务器去触发的

cmd 命令行下

C:\Users\Administrator>mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
1

创建好的 JavaWeb 项目中目前只有 src/main/resources 目录,

因此还需要手动添加 src/main/java、src/test/java、src/test/resources

编辑 pom.xml 加入 jetty 插件(用于运行本地应用服务器):

​ 在 pom.xml 中

<finalName>my-WebApp</finalName>下添加
    <pluginManagement>
      <!--配置Jetty-->
      <plugins>
        <plugin>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>maven-jetty-plugin</artifactId>
        </plugin>
      </plugins>
</pluginManagement>
1
2
3
4
5
6
7
8
9
10

1.在 tomcat 容器中运行 web 应用,需要在 pom 文件中配置 tomcat 插件 mvn tomcat:run2.在 jetty 容器中运行 web 应用,需要在 pom 文件中配置 jetty 插件 mvn

jetty:run
1

进入项目

C:\Users\Administrator\ cd my-WebApp

使用 Maven 打包发布 Web 项目:

C:\Users\Administrator\my-WebApp>mvn package

运行 jetty,监听本地的 8080 端口

C:\Users\Administrator\my-WebApp>mvn jetty:run

浏览器访问:

http://127.0.0.1:8080/my-WebApp

# 例如:构建一个普通的 java 项目

mvn archetype:generate -DgroupId=otowa.user.dao -DartifactId=user-dao -Dversion=0.0.1-SNAPSHOT

# 常用用命令演示:

  1. 编译源代码:

mvn compile

  1. 编译测试代码:

mvn test-compile

  1. 运行测试:

mvn test

  1. 产生 site:生成项目相关信息的网站

mvn site

  1. 打包:

mvn package 或 mvn clean package

pom.xml文件可以更改打包类型jar或war包

直接更改打包是会报错:Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project user-dao: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

在项目用户dao:ErrorAssemblingWAR:web xml属性上执行目标org.apache.maven.plugins:maven-war-plugin:2.2:war(default-war)失败(如果在更新模式下执行,则需要预先存在的WEB-INF/web.xml)

需添加:webapp-WEB-INF-web.xml文件mvn clean package
1
2
3
4
5
6
7

跳过测试进行打包

mvn clean package -DskipTests -Prelease

  1. 在本地 Repository 中安装 jar:

mvn install //执行测试同时到 maven 本地仓库

只打 jar 包:(不打进本地仓库)

mvn jar:jar 就是一堆.class 文件, 源代码编译出来的包, 可以直接运行的

打包项目到本地仓库(不执行测试)

mvn clean install -DskipTests

  1. 清除产生的项目:

mvn clean

  1. 生成 eclipse 项目:

mvn eclipse:eclipse

  1. 生成 idea 项目:

mvn idea:idea

  1. 编译测试的内容:

mvn test-compile

  1. 清除 eclipse 的一些系统设置:

mvn eclipse:clean

19.查看当前项目已被解析的依赖:

mvn dependency:list

20.上传到私服:

mvn deploy

  1. 看这个“有效的 (effective)”POM,它暴露了 Maven 的默认设置 :

mvn help:effective-pom

  1. 强制检查更新,由于快照版本的更新策略(一天更新几次、隔段时间更新一次)存在,如果想强制更新就会用到此命令:

mvn clean install-U

  1. 源码打包:

mvn source:jar

mvn source:jar-no-fork

mvn compile 与 mvn install、mvn deploy 的区别 mvn compile,编译类文件 mvn install,包含 mvn compile,mvn package,然后上传到本地仓库 mvn deploy,包含 mvn install,然后,上传到私服

mvn compile,编译类文件

  1. 打印出已解决依赖的列表 :

mvn dependency:resolve

  1. 打印整个依赖树 :(打印出项目的整个依赖关系树)

mvn dependency:tree

26.下载项目里所依赖的 jar 包的源码

mvn dependency:sources

27.查看错误的详细信息

mvn -e

28.发生 jar 的冲突显示冲突的原因(想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件)

mvn install -x

  1. 验证工程是否正确,所有需要的资源是否可用:

mvn validate

30.运行任何检查,验证包是否有效且达到质量标准:

mvn verify

  1. 给任何目标添加 maven.test.skip 属性就能跳过测试 :

mvn install -Dmaven.test.skip=true

mvn package -Dmaven.test.skip=true

  1. 生成 Wtp 插件的 Web 项目 :

mvn -Dwtpversion=1.0 eclipse:eclipse

  1. 清除 Eclipse 项目的配置信息(Web 项目) :

mvn -Dwtpversion=1.0 eclipse:clean

34.将下载的 jar 打到本地仓库

mvn install:install-file -Dfile=ant-1.6.5.jar -DgroupId=ant -DartifactId=as -Dversion=1.6.5 -Dpackaging=jar
1

35.项目打成了 jar 文件可以供其他项目使用, 复制这个 jar 文件到其他项目的 Classpath 中从而使用这个项目中的类,如何才能让其他的 Maven 项目直接引用这个 jar 呢?

需要一个安装的步骤,执行 mvn clean install 命令。

35.打包指定环境配置文件: dgp-ars-server-service prod.yml 文件

mvn clean package -Pprod -pl com.dist:dgp-ars-server-service -am

1
2

说明: -P 打包环境文件、 -pl 模块、 -am 同时打包所有依赖