目录
一、maven基本参数
二、maven基础结构
三、mvn的打包和运行
groupId:是指项目里面的标识,一般写法是com.mycom.myapp 其中mycom是指你公司的域名,例如com.google.myapp, 通常,具体指对应的java的包结构(就是src/main/java下的包名路径)
artifactId:是指项目的标识,大白话就是你的项目名。比如sms、sms-biz、sms-web、sms-parent
4.0.0
com.xzb.sms
sms-parent
1.0
sms-parent
pom
maven默认的项目主代码目录放在: src/main/java
maven默认的测试代码目录放在: src/test/java
junit
junit
4.11
test
maven中scope属性的
junit只在测试下 有效,如果在主代码中使用,会报编译错误
构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。
src/main/java和src/test/java
这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录中的其他文件都会被忽略掉。
src/main/resouces和src/test/resources
这两个目录中的文件也会分别被复制到target/classes和target/test-classes目录中。
target/classes
打包插件默认会把这个目录中的所有内容打入到jar包或者war包中。
profile (账户)
1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2、mvn test 测试,并生成测试报告
3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用。
将项目进行编译,测试之后,下一个重要步骤就是打包。pom.xml中如果没有指定打包类型,默认打包类型为:jar。我们可以简单地执行命令打包: mvn clean pachage。
类似地,maven会在打包之前执行编译,测试等操作。如以打jar包为例,jar:jar任务负责打包,实际上就是jar插件的jar目标将项目主代码打包成一个名为xxxxxx-1.0-SNAPSHOT.jar的文件。该文件也位于target/输出目录中,它是根据artifact-version.jar的规则进行命名的,如有需要,还可以使用finalName来自定义该文件的名称,这里暂且不展开,后面会详细解释。
在打包之后,又执行了安装任务install:install。从输出可以看到任务将项目输出的jar安装到了maven本地仓库中,可以打开相应的文件夹看到项目的pom和jar。之前我们说只有构件被下载到本地仓库后,才能由所有Maven项目使用,这里同样的道理,只有将自己编写的项目安装到本地仓库之后,其他maven项目才能使用它。
我们已经体验了maven最主要的命令:mvn clean compile,mvn clean test,mvn clean package,mvn clean install。执行test之前是会先执行compile的,执行package之前是会先执行test的,而类似地,install之前会执行package。可以在任何一个maven项目中执行这些命令。
compile-test-package-install
// install的log,install放到了 本地仓库中,供其他mvn模块调用
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ test ---
[INFO] Installing D:\workspace\YHLT\test\target\test-0.0.1-SNAPSHOT.jar to C:\Users\like\.m2\repository\com\hbj\test\test\0.0.1-SNAPSHOT\test-0.0.1-SNAPSHOT.jar
[INFO] Installing D:\workspace\YHLT\test\pom.xml to C:\Users\like\.m2\repository\com\hbj\test\test\0.0.1-SNAPSHOT\test-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
// 正式打包命令:bat文件;清空再打包,跳过test过程 使用正式环境(production)打包
@echo -----------------------------------------------------------------------------
@echo 生产环境打包
@echo -----------------------------------------------------------------------------
mvn clean package -Dmaven.test.skip=true -Pproduction
@pause
我们 要在命令行输入如mvn clean install之类的命令来执行maven构建,m2eclipse中也有对应的功能,在Maven项目或者pom.xml上右击,再选择Run As,就能看到如下的常见Maven命令,如图所示:
选择想要执行的Maven命令就能执行相应的构建,同时我们也能在Eclipse的console中看到构建输出。这里常见的一个问题是,默认选项中没有我们想要执行的Maven命令怎么办?比如,默认带有mvn test,但我们想执行mvn clean test,很简单,选择Maven buid… 以自定义Maven运行命令,在弹出对话框中的Goals一项中输入我们想要执行的命令,如clean test,设置一下Name,点击Run即可。并且,下一次我们选择Maven build,