1.Maven工程约定的目录结构
Hello • |---src • |---|---main • |---|---|---java • |---|---|---resources • |---|---test • |---|---|---java • |---|---|---resources • |---pom.xml
2.关于POM文件
<groupId>com.bjpwoernode.maven</groupId>
<artifactId>ch01-maven</artifactId>
<version>1.0-SNAPSHOT</version>
</dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
<groupId> : 组织 id,一般是公司域名的倒写
<artifactId> : 项目名称,也是模块名称,对应 groupId 中 项目中的 子项目。
<version> : 项目的版本号。
3.Maven 的生命周期
清理、编译、测试、打包、安装、部署。
4.Maven 常用命令
mvn clean :清理(会删除原来编译和测试的目录,即 target 目录,但是已经 install 到仓库里的包不会删除)
mvn compile :编译主程序(会在当前目录下生成一个 target,里边存放编译主程序之后生成的字节码文件)
mvn test-compile :编译测试程序(会在当前目录下生成一个 target,里边存放编译测试程序之后生成的字节码文件)
mvn test : 测试(会生成一个目录surefire-reports,保存测试结果)
mvn package : 打包主程序(会编译、编译测试、测试、并且按照 pom.xml 配置把主程序打包生成 jar 包或者 war 包)
mvn install : 安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)
mvn deploy : 部署主程序(会把本工程打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中。 还会自动把项目部署到 web 容器中)。
5.IDEA中设置Maven
1.使用自己安装的maven, 需要覆盖idea中的默认的设置。让idea指定maven安装位置等信息 2.配置的入口 ①:配置当前工程的设置, file--settings ---Build, Excution,Deployment--Build Tools--Maven 3.Maven Home directory: maven的安装目录User Settings File : 就是maven安装目录conf/setting.xml配置文件Local Repository : 本机仓库的目录位置 4. --Build Tools--Maven--Runner VM Options : -DarchetypeCatalog=internal JRE: 你项目的jdk 5. -DarchetypeCatalog=internal , maven项目创建时,会联网下载模版文件,比较大, 使用-DarchetypeCatalog=internal,不用下载, 创建maven项目速度快。 6.配置以后新建工程的设置, file--other settings--Settings for New Project
6.使用模版创建项目
1)maven-archetype-quickstart : 普通的java项目 2)maven-archetype-webapp : web工程
7.pom.xml中的依赖范围, 使用scope表示的。
scope的值有 compile, test, provided ,默认是compile
compile :指在项目 编译, 测试 ,打包, 安装 ,部署都会存在
test :指在项目测试阶段才会存在 ,比如 junit 就可以设置依赖范围是 test
provided :常见的是 servlet 和 jsp中的依赖设置 ,provided 的范围在打包后不存在 ,编译测试阶段都有 。
8.资源插件
<build>
<resources>
<resource>
<directory>src/main/java</directory><!--所在的目录-->
<includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!—filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
<filtering>false</filtering>
</resource>
</resources>
</build>
-
默认没有使用resources的时候, maven执行编译代码时, 会把src/main/resource目录中的文件拷贝到target/classes目录中。
-
配置了资源插件后 ,maven执行编译代码时,就会将 main/src/java 下的配置文件加载到 target/classes 目录中了