MAVEN

整理自http://blog.csdn.net/wlwlwlwl015/article/details/47980537


MAVEN常用的是以下4个目录:

    src/main/java  存放项目的java类源文件,

    src/main/resources  存放项目的资源文件,

    src/test/java  存放项目的用于测试的java类源文件,

    src/test/resources  存放项目的测试相关的资源文件

pom.xml配置文件:Maven的核心配置文件,项目版本,jar包依赖等等都以标签的形式保存在了这个配置文件中,

    必须配置的4个基础元素:modelVersion ——描述这个pom.xml文件是遵从哪个版本的项目描述符

                                        groupId ——指明了创建项目的组织的唯一标识符,一般就是包名了

                                     artifactId ——指的是项目中的主要的模块名(primary artifact),默认命名方式是“项目名-模块名”

                                        version ——指的是项目模块的版本,通常使用的是Maven的快照版本(例如:0.0.1-SNAPSHOT)

Maven的一大特点就是通过pom.xml去管理jar包以及相关依赖,我们只需要在配置文件中写入依赖的相关配置,那么Maven就会自动从Maven中央仓库中将我们的jar包下载到本地仓库,Maven项目不必再手动将jar包add到项目的classpath中,而是在pom.xml中声明即可,Maven会自动下载到本地。

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project  
  3.     xmlns="http://maven.apache.org/POM/4.0.0"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  6.   <modelVersion>4.0.0</modelVersion>  
  7.   <groupId>com.wl.maven01</groupId>  
  8.   <artifactId>maven-test</artifactId>  
  9.   <version>0.0.1-SNAPSHOT</version>  
  10.     
  11.   <dependencies>  
  12.     <dependency>  
  13.       <groupId>junit</groupId>  
  14.       <artifactId>junit</artifactId>  
  15.       <version>4.11</version>  
  16.     </dependency>  
  17.   </dependencies>  
  18. </project>  

通过Maven命令mvn compile编译项目,

通过mvn test命令来对运行我们Maven项目的单元测试

打包命令——mvn package

最常用的基础命令mvn install,它的作用是将我们的maven项目编译打包并安装到我们的本地Maven仓库

在Maven中仓库被用于保存和创建各种类型的artifacts(模块)以及依赖。简单来讲,仓库主要就是用于存放我们项目中用到的各种各样的jar包了,我们在pom.xml中声明的所有依赖jar包,其实都是来自本地仓库的引用。Maven有两种仓库,分别是local(本地)仓库和remote(远程)仓库,Maven自动从远程仓库去下载我们需要的依赖和库到Maven本地仓库。本地仓库的默认路径是~/.m2/repository.。

Maven本地仓库的默认路径在C盘,所以需要自定义仓库的目录,找到Maven的全局配置文件(Maven安装目录下的conf/settings)文件,我们找到localRepository元素修改为本地路径即可:

  1. <!-- localRepository  
  2.  | The path to the local repository maven will use to store artifacts.  
  3.  |  
  4.  | Default: ${user.home}/.m2/repository  
  5. <localRepository>/path/to/local/repo</localRepository>  
  6. -->  
  7. <localRepository>E:\apache-maven-3.3.3\repo</localRepository> 


clean命令,作用就是清理编辑结果,即:删除target文件夹以及内容。


自动创建Maven项目:使用archetype插件可以创建Maven项目,而且一个archetype会提供许多项目模板(骨架),通常情况下我们使用mvn archetype:generate命令即可。

如果是第一次运行这个命令则会需要一些时间去自动下载jar包,最后我们可以看到Choose a number or apply filter,Maven的Archetype插件为我们提供了多达1393个项目模板可供选择,我们可以输入模板编号来选择,或者输入过滤器进行过滤,过滤器也很简单,比如我们需要创建web项目,那么输入“web+回车”就会筛选出所有web项目骨架了。当然我们如果不知道选择什么,也可以什么也不输入直接敲回车,就会选择默认的模板,其实就是一个普通java项目了。

接下来我们根据提示需要依次输入版本号、groupId、artifactId、version、package并输入“Y”来确认之后,我们就会在指定的目录下成功创建这个默认骨架的Maven项目了


最后我们直接安装并运行一下这个项目,通过mvn install将我们这个项目编译打包并安装到本地仓库,并通过java命令去运行jar包。

我们还可以通过指定参数名的方式去创建指定的某种骨架的项目,分别是-DarchetypeGroupId-DgroupId-DartifactId。比如依旧创建上面的那个默认项目的话,我们可以直接运行这个命令:

mvn archetype:generate -DgroupId=com.wl.maven04 -DartifactId=maven04-model -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

这样就避免了我们去选择,而直接创建默认的骨架——maven-archetype-quickstart的项目了。我们在之前运行mvn archetype:generate命令时也看到了这个插件为我们提供的骨架有1393之多,即使我们使用了filter也很难选择。maven-archetype-webapp,我们在创建web项目的时候更多的应该会选择这个骨架。


首先创建一个新的目录MavenWebTest,在命令行中切换到该目录并输入命令,创建完成后我们把这个项目导入到MyEclipse中,可以发现src/main下多了一个webapp目录,而这个目录其实就和我们普通web项目的webroot或webcontent是一样的了,我们的web相关文件(js、jsp、css)等都应该放在这个目录下了,自动生成的maven web项目的pom文件:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   <groupId>com.wl.mavenwebtest</groupId>  
  5.   <artifactId>mavenweb-model</artifactId>  
  6.   <packaging>war</packaging>  
  7.   <version>1.0-SNAPSHOT</version>  
  8.   <name>mavenweb-model Maven Webapp</name>  
  9.   <url>http://maven.apache.org</url>  
  10.   <dependencies>  
  11.     <dependency>  
  12.       <groupId>junit</groupId>  
  13.       <artifactId>junit</artifactId>  
  14.       <version>3.8.1</version>  
  15.       <scope>test</scope>  
  16.     </dependency>  
  17.   </dependencies>  
  18.   <build>  
  19.     <finalName>mavenweb-model</finalName>  
  20.   </build>  
  21. </project> 


注意一下packaging元素,它的值是war,也就说明我们执行mvn package打包项目的时候会在target目录下生成一个war包,把这个war包拷贝到tomcat的webapps目录并启动tomcat。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值