主要功能主要分为 5 点,分别是依赖管理系统、多模块构建、一致的项目结构、一致的构建模型和插件机制
maven 创建项目及常用命令
前提:配置 windows 环境变量,JAVA_HOME 和 M2_HOME
进入 cmd 命令行:输入:mvn -v //进行验证 maven 是否安装好
C:\Users\Administrator>mvn -v
查看 mvn 的帮助
C:\Users\Administrator> mvn -help
mvn clean compile、mvn clean test、mvn clean package、mvn clean install。
执行 test 之前是会先执行 compile 的,执行 package 之前是会先执行 test 的,而类似地,install 之前会执行 package。
maven 项目的目录结构图:
一、maven 命令创建项目的两种方式:
archetype:generate 按照提示进行选择
archetype:gennerate -DgroupId=组织名,公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名
3.Maven 创建普通 java 项目
mvn archetype:create -DgroupId=packageName -DartifactId=projectName
4.Maven 创建 web 项目
mvn archetype:create -DgroupId=packageName -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp
5.简化版生成 web 项目
mvn archetype:generate -DgroupId=otowa.user.dao -DartifactId=user-dao -Dversion=0.0.1-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp
web 项目是需要服务器去触发的
cmd 命令行下
C:\Users\Administrator>mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
创建好的 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.在 tomcat 容器中运行 web 应用,需要在 pom 文件中配置 tomcat 插件 mvn tomcat:run2.在 jetty 容器中运行 web 应用,需要在 pom 文件中配置 jetty 插件 mvn
jetty:run
进入项目
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
mvn archetype:generate -DgroupId=otowa.user.dao -DartifactId=user-dao -Dversion=0.0.1-SNAPSHOT
mvn compile
mvn test-compile
mvn test
mvn site
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
跳过测试进行打包
mvn clean package -DskipTests -Prelease
mvn install //执行测试同时到 maven 本地仓库
只打 jar 包:(不打进本地仓库)
mvn jar:jar 就是一堆.class 文件, 源代码编译出来的包, 可以直接运行的
打包项目到本地仓库(不执行测试)
mvn clean install -DskipTests
mvn clean
mvn eclipse:eclipse
mvn idea:idea
mvn test-compile
mvn eclipse:clean
19.查看当前项目已被解析的依赖:
mvn dependency:list
20.上传到私服:
mvn deploy
mvn help:effective-pom
mvn clean install-U
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,编译类文件
mvn dependency:resolve
mvn dependency:tree
26.下载项目里所依赖的 jar 包的源码
mvn dependency:sources
27.查看错误的详细信息
mvn -e
28.发生 jar 的冲突显示冲突的原因(想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件)
mvn install -x
mvn validate
30.运行任何检查,验证包是否有效且达到质量标准:
mvn verify
mvn install -Dmaven.test.skip=true
mvn package -Dmaven.test.skip=true
mvn -Dwtpversion=1.0 eclipse:eclipse
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
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
说明: -P 打包环境文件、 -pl 模块、 -am 同时打包所有依赖