Maven使用说明

maven的作用.

Maven 是一个项目管理和构建自动化工具。可以方便我们导入jar包。

maven的安装.

  1. 要想安装maven,首先你需要安装jdk,并且配置jdk环境变量。右键点击计算机,选择属性。
    Maven1.jpg
  2. 下载maven压缩包,并且解压。网址*maven
  3. 配置maven的环境变量。在环境变量中,添加 MAVEN_HOME=”你解压的maven的所在位置”(比如:E:\maven\apache-maven-3.3.3).在环境变量path中,后面添加 %MAVEN_HOME%\bin;.
    Maven2.jpg
  4. 测试是否安装成功。进入cmd中,执行mvn –v;如果输出maven的信息,那么则安装成功。如图:
    Maven3.jpg

eclipse中配置maven

  1. 打开eclipse软件,如果没有。选择工具栏中->help->install new softwore->输入网址:*eclipse中加入maven。将maven插件安装到eclipse中。如果有,略过这一步。
  2. 选择工具栏->windows->preferences->找到maven的目录。打开Installations,添加自己本地安装的maven目录。
    Maven4.jpg
  3. 选择工具栏->windows->preferences->找到maven的目录。打开User Setting,添加自己本地安装的maven目录。
    Maven5.jpg
  4. 找到安装的maven目录下的conf下的setting.xml,可以修改本地仓库jar包存储位置。找到localRepository标签,可以选择本地仓库位置。例如:
    <localRepository>E:/maven/apache-maven-3.3.3/repository</localRepository>
  5. 将setting.xml拷贝到自己本地仓库目录下(未修改本地仓库时,是.m2下的repository)修改了本地仓库,就去修改的目录下。修改其中mirror标签内容.
<mirror>
   <id>public</id>
   <name>Public Repositories</name>
   <url>http://192.169.0.205:8081/nexus/content/groups/public/</url>
   <mirrorOf>*</mirrorOf>
</mirror>
Mirror标签中:id, name是该镜像的唯一定义符。id用来区分不同的mirror元素。
url是该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。
mirrorOf是被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库*maven中央仓库的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致。本例中,我们使用了公司的maven仓库。所以mirrorOf标签和我们公司的仓库id相同。

eclipse中导入和创建maven项目

导入maven项目

  1. 在目录空间中,右键点击import->maven->Existing Maven Project.选择上自己要导入的maven项目。
    Maven6.jpg
  2. 打开pom.xml,里面是maven的xml文件。

新建maven项目

  1. 在eclipse工具栏中找到file->new->others->maven->maven project点击。
  2. 选择Use default Workspace location 点击下一步。
  3. 选择Artifact Id 最后为web-app的,点击下一步。这样我们就建立了一个maven的web项目。
    Maven7.jpg
  4. 填上自己想要建立项目的独立标识group id和artifact id.完成。

解析pom.xml

<modelVersion>4.0.0</modelVersion>
声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。
<groupId>com.3h</groupId>
项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.3h生成的相对路径为:/com/3h.
<artifactId>fund</artifactId>
构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个特定的group ID下,artifact ID也必须是唯一的。构件是项目产生的或使用的一个东西,Maven为项目产生的构件包括:JARs,源码,二进制发布和WARs等.
<packaging>war</packaging>
项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型.

在pom.xml中配置仓库的位置

  <repositories>
    <repository>
      <id>public</id>
      <name>Public Repositories</name>  
      <url>http://192.169.0.205:8081/nexus/content/groups/public/</url>
    </repository>
  </repositories>
作用:由于不同的项目,可能需要不同的仓库位置,所以在pom.xml中配置仓库。

maven中如何加载jar包的依赖

<dependencies>
  <!-- Spring framework 4.2.3 -->
  <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-context</artifactId>
       <version>4.2.3.RELEASE</version>
  </dependency>
</dependencies>
上例中,我们使用了Spring framework 4.2.3的jar包,那么我们只需要拿到这个jar包在仓库中存储的标示(groupId,artifactId),以及版本(version).他会首先从我们配置的仓库位置寻找这些jar包,如果没有,则会从maven的中央仓库中寻找这些jar包,进行加载,并且一些相关依赖的jar包,也会加载。

项目中用到的一些插件

  <plugins>
    <plugin><!-- 编译说明 -->
    	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.2</version>
	<configuration> <!--作为DOM对象的配置-->  
      	   <source>1.7</source>
      	   <target>1.7</target>
        </configuration>
     </plugin>
  </plugins>
这里就是告诉我们的代码使用的是什么jdk版本。
  <plugin>复制文件
      <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-resources-plugin</artifactId>
     <executions>
	<execution>
           <phase>compile</phase> 绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段  
	   <goals>  配置的执行目标  
	      <goal>copy-resources</goal>
	   </goals>
           <configuration>	
	     <outputDirectory>${project.build.outputDirectory}</outputDirectory>
	     <resources>
		<resource>
		    <directory>src/main/resources/{dev}</directory>
		</resource>
	     </resources>
	     <overwrite>true</overwrite>
	   </configuration>
	</execution>
      </executions>
  </plugin>
这是拷贝配置信息的一段xml,由于我们有三个环境,所以为了便捷可以直接使用插件,进行拷贝一些配置信息。
<plugin>打包声明
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-war-plugin</artifactId>
   <version>2.6</version>
   <configuration>
	<warName>3hfund</warName>
	<failOnMissingWebXml>false</failOnMissingWebXml>
	<webResources>
		<resource>
		    <directory>${basedir}/src/main/webapp</directory>
		    <filtering>true</filtering>
		    <includes>
			<include>WEB-INF/web.xml</include>
		    </includes>
		</resource>
	</webResources>
    </configuration>
</plugin>
使用了maven-war-plugin插件进行打包。
<profile> 可以通过 -P ID 来激活
    <id>PUB</id> ID 标识符
    <properties>
        <env>pub</env> properties 定义 key-value, 这里 key 是 env, value 是 PROD
    </properties>
    <activation>
      	<activeByDefault>true</activeByDefault> 
    </activation>
</profile>
定义了打包过程中使用的配置文件,打包使用 mvn package –P PUB则打包配置文件是pub的war包。

Pom.xml详细解析:请看*pom.xml详解Profile详解:*profile详解

maven中常用命令

  1. 当我们修改了pom.xml中的内容时,我们要更新一下项目。右键项目名,找到maven,选择update project.
  2. mvn package –P PUB 使用pub下面的配置文件进行打包
  3. mvn compile //编译源代码
  4. mvn test-compile//编译测试代码
  5. mvn test //运行应用程序中的单元测试
  6. mvn site //生成项目相关信息的网站
  7. mvn clean //清除目标目录中的生成结果
  8. 在eclipse下如何使用maven命令
run as->run configurations->选择 maven build->点击新增,选择好启动的项目,输入maven命令。不需要mvn。
Maven8.jpg
posted @ 2017-02-22 10:48  陈都  阅读(2094)  评论(0编辑  收藏  举报