0、Maven是什么?
Maven是一个构建工具?不,Maven更是一个项目管理工具,除了构建功能之外Maven还可以生成报告,生成Web站点,推动团队成员之间的交流。
一、下载、安装、配置都比较简单,这里省略300字···
二、创建一个新的项目
第一个步骤完成执行命令:mvn -version 如果能正确返回maven的版本信息,那么恭喜进入第二步。
mvn archetype:generate
第一次执行程序会花一段时间下载archetype,每个archetype都有一个number、name、short description用来描述,我们选择一个默认的archetype,直接回车就ok.
接着:choose a number,同样直接回车默认的选择
接着定义
grouid:通常是根据公司或组织的网址来定义,如:com.lzjun
artifactid:项目的id,就是项目的名称,如:"mvnlearn“
version: 版本号,直接回车,默认是1.0-SNAPSHOT
packeage:项目的包名,如:com.lzjun
回车,输入Y,构建完成,生成的项目的目录结构如下所示
|-- pom.xml
|-- src
|-- main
|-- java
|-- com
|--lzjun
| -- App.java
|-- test
|-- java
|-- com
|--lzjun
| -- AppTest.java
三、编译、测试项目
在项目所在路径的命令行终端,执行:mvn compile
Maven开始下载依赖包,然后编译,最后提示“BUILD SUCCESS"证明编译成功。在项目mvnlearn目录下面生成target目录,编译好的字节码class问件就在这个目录里面。
target的目录层次结构:
├───mvnlearn-1.0-SNAPSHOT.jar(此文件通常要执行 mvn package 命令才有)
├───classes
|-- com
|--lzjun
| -- App.class
├───maven-archiver
──pom.properties
├───surefire
----临时文件
├───surefire-reports
──com.lzjun.AppTest.txt
── TEST-com.lzjun.AppTest.xml
│───test-classes
───com
───lzjun
───AppTest.class
执行:mvn test
将执行test包项目的测试用例,最后返回测试结果
四、理解Project Object Model
每个maven项目都包含一个pom.xml的文件,文件中包含了与项目相关的所有元信息。如:项目配置文件、缺陷追踪系统、项目组织信息、Licenses、项目的路径、依赖关系等等。
pom.xml的组织结构通常如下:
<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>
<!-- The Basics -->
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<packaging>...</packaging>
<dependencies>...</dependencies>
<parent>...</parent>
<dependencyManagement>...</dependencyManagement>
<modules>...</modules>
<properties>...</properties>
<!-- Build Settings -->
<build>...</build>
<reporting>...</reporting>
<!-- Project Meta Data -->
<name>...</name>
<description>...</description>
<url>...</url>
<inceptionYear>...</inceptionYear>
<licenses>...</licenses>
<organization>...</organization>
<developers>...</developers>
<contributors>...</contributors>
<!-- Environment -->
<issueManagement>...</issueManagement>
<ciManagement>...</ciManagement>
<mailingLists>...</mailingLists>
<scm>...</scm>
<prerequisites>...</prerequisites>
<repositories>...</repositories>
<pluginRepositories>...</pluginRepositories>
<distributionManagement>...</distributionManagement>
<profiles>...</profiles>
</project>
项目坐标:groupId,artifactId,version是POM中必须包含的最小基本域信息。
POM包括四个主要的部分
1、基本属性: (groupId、artifact、version)、依赖管理、层级结构、还包括模块和项目级别属性
2、构建设置:包含项目构建的细节设置
3、项目元数据:包含项目规范的细节,如:名字、组织机构、开发者、URL、启动时间等等
4、环境信息:包括版本控制信息、问题追踪管理、持续集成、邮件列表、仓储等等、
五、Maven的生命周期
maven有三个相互独立的生命周期,分别是default、clean、site
Default lifecycle:负责处理项目的编译、测试、部署,有超过20个阶段,常用的有如下:
validate:验证整个项目的信息是否可用或正确
compile:编译源代码
test:在测试套件里运行单元测试
package:为编译的代码打包
integration-test:在集成测试环境中处理package
verify:验证package是否合法
install:本地仓储中安装package
deploy:在远程仓储中安装最终的package
以上阶段都是按先后顺序执行,如果直接执行deploy,maven会先从validate开始执行,直到deploy。
Clean lifecycle:处理项目的清空工作,包含以下阶段:
pre-clean:清理之前的一些预处理。
clean:清除通过之前构建生成的所有文件
post-clean:清理之后的一些处理(类似异常代码块中的finally)
Site lifecycle:项目站点文档的生成工作
pre-site:站点生成前的准备工作
site:生成文档
post-site:处理站点生成完之后的一些工作,及为部署做准备
site-deploy:给指定的web服务器部署站点文档
maven源码插件:
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
关于错误:
Convert to maven project: An internal error occurred during: “Enabling Maven Dependency Management”. Unsupported IClasspathEntry kind=4
有个解决办法是先 mvn eclipse:clean 在eclipse中刷新项目后再convert maven project
maven 测试指定类:
mvn test -Dtest=className
mvn -Dtest=className test
执行单个:mvn test -Dtest=UserTest
执行多个:mvn test -Dtest=
UserTest ,User2Test,User3Test
运用通配符:mvn test -Dtest=User*Test
maven 测试指定方法:
mvn test -Dtest=className#method 或 mvn -Dtest=className#method test
mvn test -Dtest=UserTest#addtest
maven package without test:
mvn package -Dmaven.test.skip=true
mvn deploy -Dmaven.test.skip=true
可以把项目上传到maven私服
(setting.xml)配置
<server>
<id>internal</id>
<username>xxx</username>
<password>xxx</password>
</server>
<mirror>
<id>internal</id>
<name>Cloud Archiva</name>
<url>http://192.168.0.58:8181/archiva/repository/internal</url>
<mirrorOf>*</mirrorOf>
</mirror>
Maven remote debug
配置环 境变量
linux:
export MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y
windows:
set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y
执行们命令后就会监听端口8787。(此方法在笔者测试下虽然监听了该端口,但是并不在跳到本地eclipse中的断点里来),只好换一种方法
mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001 -Xnoagent -Djava.compiler=NONE" test TestClazz #TestClazz为测试类
如果是普通的Java项目
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 Test #Test是入口类
或者
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar Test.jar #jar包
如果是tomcat项目
windows:在startup.bat文件中加上
set JPDA_ADDRESS=8000 #监控端口,非web项目端口
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS% #在原有的这行加上jpda
linux运行
catalina.sh jpda run # windows 要运行catalina.bat脚本
在eclipse中配置好远程调试的参数即可调试(右键project名称->Debug As->Debug Configures)进行配置
Cannot-read-lifecycle-mapping
清空 ~/.m2/repository
http://forum.springsource.org/showthread.php?129882-Error-Cannot-read-lifecycle-mapping
- 大小: 52.8 KB
- 大小: 33.7 KB
分享到:
相关推荐
写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法。 这个入门篇分上下两篇。本文着重动手,用 maven 来构建运行 hellow world 程序,体会一下不用...
Maven实战——入门篇.
NULL 博文链接:https://georgema2000.iteye.com/blog/1062887
Maven实战(入门篇):关于Maven入门的基础知识
maven入门,maven环境的搭建以及maven配置到eclipse以及pom.xml文件配置等
Maven2教程,项目构建使用,一起学习
写这个maven的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于maven不是那么了解,所以就有了这个想法。这个入门篇分上下两篇。本文着重动手,用maven来构建运行hellowworld程序,体会一下不用任何IDE,...
这是一篇关于Maven的入门指南,有详细的操作步骤,适合初学者
Maven介绍 Maven的使用,安装,环境变量配置,仓库配置,maven工程目录认识,ieda中使用及配置maven等等 Maven常用命令 仓库图解 ...这里有一篇很全很基础的文档,这篇文档看完要是还不理解算我输;
Maven3培训教程.pptx MavenQuickReferenceCard.pdf MavenTheDefinitiveGuide.pdf Maven实战.pdf Maven实战——入门篇.pdf Maven学习.doc 持续集成之路——搭建Maven私服.doc 利用m2eclipse生成WTP项目.pdf
这个入门篇分上下两篇。本文着重动手,用 maven 来构建运行 hellow world 程序,体会一下不用任何 IDE ,只用 maven 是咋回事。然后下篇就讲解一下 maven 的核心概念。写这两篇文章特意回避了复杂的示例,也不使用 ...
maven的使用_看到一篇很实用的入门教程(菜鸟级入门).docmaven的使用_看到一篇很实用的入门教程(菜鸟级入门).doc
本篇文章主要介绍了详解使用IntelliJ IDEA 配置Maven(入门),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
但是其中整合SSI的相对比较少的,如果是用Maven整合的就是少之又少的,如果是用Maven构建的企业级应用(多模块开发)整合SSI框架的实例基本上是没有的,所以写下这篇教程(当然这个教程其实算是入门级的多模块应用...
GSON入门篇 一、创建一个JavaSE项目 二、IDEA中导入gson的jar包 三、创建JavaBean 四、测试类 4.1 一个对象转JSON 4.2 多个对象转JSON 4.3 JSON字符串转一个对象 4.4 JSON字符串转多个对象(List) 4.4.1 错误案例 ...
《maven2经典(新手必备)》,作者:李海鹏,DOC 格式,大小 363KB。...这里推荐两篇文章: Maven 2.0:编译、测试、部署、运行 http://www.ideagrace.com/html/doc/2006/06/14/00847.html Maven2 的新特性 ...
Maven+SpringMVC+Dubbo 简单的入门demo配置 源码,,,亲测好用。 具体说明可见这篇转载过来的文章:https://blog.csdn.net/mijichui2153/article/details/81711480
为新学习 JSP 的开发爱好者小白写下这篇文章,教你若何创建一个自己的学生信息管理系统,可能有很多小白也在迷茫中,建议你不要灰心啊,在下面我讲给你叙述如何进行完成一套自己的系统,并且提供两套版本,一套为 ...