http://www.cnblogs.com/xdp-gacl/p/3498271.html
http://www.cnblogs.com/xdp-gacl/p/4240930.html
一、Maven使用入门
背景知识:Maven是一款服务于Java平台的自动化构建工具。Make --> Ant -->Maven --> Gradle
一个BS项目最终运行的并不是动态Web工程本身,而是这个动态Web工程“编译的结果”。
1.1编写POM
Maven项目的核心是pom.xml:定义了项目的基本信息,用于描述项目如何构建,声明项目依赖。
<?xml version="1.0" encoding="UTF-8"?> <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"> <!--所有的Maven项目都必须配置这四个配置项--> <modelVersion>4.0.0</modelVersion> <!--groupId指的是项目名的项目组,默认就是包名--> <groupId>com.juvenxu.mvnbook</groupId> <!--artifactId指的是项目中的某一个模块,默认命名方式是"项目名-模块名"--> <artifactId>hello-world</artifactId> <!--version指的是版本,这里使用的是Maven的快照版本--> <version>1.0-SNAPSHOT</version> <!--非必须的方便信息交流--> <version>1.0-SNAPSHOT</version> </project>
modelVersion:指定当前POM模型的版本,对于Maven 2 及Maven 3来说,它只能是4.0.0
groupId,artifactId,version:定义了一个项目基本的坐标。
groupId:定义了项目属于哪个组。
artifactId:定义了当前Maven项目在组中唯一的ID。
version:定义当前项目的版本。
1.2 编写主代码:
项目主代码和测试代码不同,项目的主代码会被打包到最终的构件中(如jar),而测试代码只会在运行测试时用到,不会被打包。默认情况,Maven假设项目主代码位于src/main/java目录。(Maven会自动搜索该目录找到项目主代码)。该Java类的包名是com.juvenxu.mvnbook.helloworld,这与之前在POM中定义的groupId和artifactid相吻合。一般来说,项目中Java类的包都应该基于项目的groupId和artifactId。
1.3 编写测试代码:
默认情况,Maven假设项目主代码位于src/test/java目录
为项目添加JUnit依赖:
<?xml version="1.0" encoding="UTF-8"?> <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> <groupId>com.juvenxu.mvnbook</groupId> <artifactId>hello-world</artifactId> <version>1.0-SNAPSHOT</version> <name>Maven Hello World Project</name> <!--添加依赖的jar包--> <dependencies> <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> </dependencies> </project>
1.4 打包和运行
mvn clean package进行打包。(默认打包类型是jar)--Maven打包之前执行编译、测试等操作。
其他Maven项目直接引用jar?--mvn clean install
该任务将项目输出的jar安装到Maven本地仓库中。(构件被下载到本地仓库后,才能由所有Maven项目使用)。
二、Maven仓库
本地仓库默认值:C:Users自己的电脑用户名.m2 epository
私服是一种特殊的远程仓库,它是架构在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven的用户使用。