maven的下载与安装
下载页面:http://maven.apache.org/download.cgi
历史版本:http://maven.apache.org/docs/history.html
中央仓库的地址:http://mvnrepository.com/
【阿里云私服】--连外网时使用
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
maven项目构建的生命周期
maven的三套生命周期
clean生命周期
clean生命周期的目的是清理项目,它包含三个阶段:
-
pre-clean 执行一些清理前需要完成的工作;
-
clean 清理上一次构建生成的文件;
-
post-clean 执行一些清理后需要完成的工作;
default生命周期
default生命周期定义了真正构建项目需要执行的所有步骤,它是所有生命周期中最核心的部分。其中的重要阶段如下:
-
compile :编译项目的源码,一般来说编译的是src/main/java目录下的java文件至项目输出的主classpath目录中;
-
test :使用单元测试框架运行测试,测试代码不会被打包或部署;
-
package :接收编译好的代码,打包成可以发布的格式,如jar和war;
-
install: 将包安装到本地仓库,共其他maven项目使用;
-
deploy :将最终的包复制到远程仓库,供其他开发人员或maven项目使用;
site生命周期
site生命周期的目的是建立和发布项目站点,maven能够基于pom文件所包含的项目信息,自动生成一个友好站点,方便团队交流和发布项目信息。该生命周期中最重要的阶段如下:
site :生成项目站点文档;
maven生命周期相关命令
mvn clean:调用clean生命周期的clean阶段,清理上一次构建项目生成的文件;
mvn compile :编译src/main/java中的java代码;
mvn test :编译并运行了test中内容 ;
mvn package:将项目打包成可发布的文件,如jar或者war包;
mvn install :发布项目到本地仓库 ;
mvn deploy:发布项目到远程仓库;
mvn tomcat:run 使用maven的tomcat插件运行web项目;
5种依赖范围
-
compile :编译依赖范围。如果没有指定,默认就是这种依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。
-
test :测试依赖范围。使用此依赖范围的Maven依赖,只对测试classpath有效。在编译主代码和运行项目期间都不需要使用此依赖。典型的例子就是Junit,它只在编译和运行测试代码时有效。
-
provided :已提供依赖范围。使用此依赖范围的maven依赖在编译和测试classpath有效,但运行时无效。典型的例子就是servlet-api。编译和测试的时候需要使用servlet-api中的方法,但是使用tomcat运行项目的时候不需要,因为tomcat在运行期间会提供这个依赖。
-
runtime: 运行时依赖范围。使用次依赖范围的maven依赖对于测试和运行classpath有效,但在编译主代码时无效。典型的例子是JDBC驱动实现,项目主代码的编译只需要提供JDK提供的JDBC接口,只有在执行测试或者运行项目的时候才需要实现上述接口的具体JDBC驱动。
-
system :系统依赖范围。该依赖与三种classpath的关系和provided依赖范围完全一致。但是,使用system范围的依赖时必须通过systemPath元素显式地指定依赖文件的路径。由于此依赖不是通过Maven仓库解析的,而且往往与本机系统绑定,可能造成构建的不可移植,因此应该谨慎使用。systemPath元素可以引用环境变量。
<!--JDK编译插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
清理maven仓库 脚本: