Maven 用于项目管理与构建。
它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
默认仓库定义及位置
~/.m2/settings.xml
该文件包含了用户相关的认证,仓库和其它信息的配置,用来自定义Maven的行为。
~/.m2/repository/
该目录是你本地的仓库。当你从远程Maven仓库下载依赖的时候,Maven在你本地仓库存储了这个依赖的一个副本。
自带远程仓库地址:http://repo1.maven.org/maven2
Eclipse M2Eclipse maven插件
http://m2eclipse.sonatype.org/sites/m2e
http://eclipse.org/m2e/download/
http://download.eclipse.org/technology/m2e/releases/1.3/?d
mave坐标
groupId,artifactId, packaging, versionpackaging
默认为jar
作用范围
test : 只在运行compiler:testCompile和surefire:test等测试目标的时候才会被加入到classpath中
provided:依赖在编译的时候需要,但是它不应该被捆绑在构建的输出中,如Servlet API
命令
mvn -v 查看版本信息,需要配置M2_HOME,并将%M2_HOME%/bin添加到path中
mvn --help
mvn install 构建并打包
mvn install -X 调试标记运行,查看完整的依赖踪迹,会打印因为冲突或者其它原因而被拒绝引入的构件
mvn clean install 先清理,然后干净地构建
mvn help:effective-pom 展示Maven真正运行根据的POM,它包含一些默认配置mvn package 同
mvn resources:resources \
compiler:compile \
resources:testResources \
compiler:testCompile \
surefire:test \
jar:jarmvn site 生成文档和报告
mvn dependency:resolve 打印依赖的列表
mvn dependency:tree 同上,整个依赖树
mvn test 运行单元测试 test 目标执行项目中所有能在 src/test/java 找到的并且文件名与 **/Test*.java, **/*Test.java 和 **/*TestCase.java 匹配的所有单元测试 test -Dmaven.test.failure.ignore=true mvn install -Dmaven.test.skip=true
mvn install assembly:assembly 将把依赖也打入jar包,java -cp common-*.jar com.xxx.Main 执行结果
mvn exec:java -Dexec.mainClass=org.*.Main 运行类mvn help:describe -Dplugin=exec -Dfull 查看 Exec 插件的完整描述(Exec 插件允许你运行 Java 类和其它脚本。 它不是 Maven 核心插件)
mvn hibernate3:hbm2ddl 使用Hibernate3插件构造数据库
mvn dependency:analyze 分析依赖
mvn site:run 生成站点
其它
1.maven传递依赖;
2.优化依赖:父项目中的dependencyManagement定义版本;/pluginManagement
3.优化依赖:如果多于一个项目依赖于一个特定的依赖,可在dependencyManagement中列出;
4.优化插件:properties 定义版本
插件测试
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore> <skip>true</skip>
</configuration>
</plugin>
</plugins>
打jar包
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
Jetty mvn jetty:run
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
Hibernate mvn hibernate3:hbm2ddl 未测试
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>annotationconfiguration</implementation>
</component>
</components>
</configuration>
<dependencies>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
</dependencies>
</plugin>
编译
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
示例:
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.2.5.ga</version> <exclusions> <exclusion> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency>
指定源代码的编码
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
查看install plugin的版本
mvn -Dplugin=install help:describe
跳过测试
-Dmaven.test.skip=true or -DskipTests=true
只测试一个
-Dtest=MyTest
指定站点的编码
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>XXXX</version> <configuration> <outputEncoding>UTF-8</outputEncoding> </configuration> </plugin>
tools.jar
<profiles> <profile> <id>default-tools.jar</id> <activation> <property> <name>java.vendor</name> <value>Sun Microsystems Inc.</value> </property> </activation> <dependencies> <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.4.2</version> <scope>system</scope> <systemPath>${java.home}/../lib/tools.jar</systemPath> </dependency> </dependencies> </profile> </profiles>
源代码SVN
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x http://svn.apache.org/viewvc/maven/maven-3/trunk
相关推荐
Maven的安装: (首先保证JDK版本在1.6以上) 1: 通过配置MAVEN_HOME 和 %% %MAVEN_HOME%\bin 然后进行mvn -version 测试 掌握 -Xms 与 -Xmx的相关配置 2: Maven目录分析: 2.1: bin: 含有mvn运行的脚本 2.2...
Maven笔记.pdf
Maven的好处 节省空间 对jar包做了统一管理 依赖管理 一键构建:tomcat:run可以脱离开发工具 可跨平台 应用在大型项目可提高开发效率(模块开发)
maven学习笔记maven学习笔记maven学习笔记
doc文档
java-Maven笔记.docx
maven笔记.zip
Maven笔记.doc
Maven笔记总结!!
9_Maven笔记.pdf
他是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的。
详细介绍了maven的相关知识,资料包里包含maven的word版的笔记和教案
Maven笔记,内包含Maven核心程序解压和配置,命令行环境,IDEA环境,jar包3下载失败问题的解决方案
配套视频:https://www.bilibili.com/video/BV1kf4y147Q4
maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装...
Maven笔记1
Maven 教程:基础篇——尚硅谷学习笔记 2022年
Maven是一个强大的项目构建工具和依赖管理工具,用于简化和自动化Java项目的构建、发布和管理过程。它具有集中式的项目描述文件,可以帮助开发人员更轻松地管理项目的依赖、构建过程和发布版本。以下是对Maven的描述...
学完maven,自己整理一篇关于maven介绍和使用的笔记