Maven2配置详解

一、简介


Maven是一个项目构建工具,最大的特点就是第三方依赖库(这里用到的依赖库就是Nexus,之后会说)对项目进行统一管理,还可以通过配置命令,完成项目的编译,测试,打包等动作

而其最主要的配置文件就是pom.xml和settings.xml

pom.xml文件则是Maven的核心对象模型,一个项目都需要一个对应的pom.xml文件

Maven也定义了自己的目录结构,这里就不介绍了,只需要知道pom.xml文件是放在与src同级目录下,如下图所示:


二、配置

1.将下载好的Maven压缩文件解压,目录结构如下图所示:

2.配置

maven需要jre的支持,所以首先确保机器上装有JDK,并配有环境变量。

之后,还需要配置maven的环境变量,假设我的安装位置如上图,那么环境变量就应设为:

M2_HOME:D:\apache-maven-2.2.1

PATH:%M2_HOME%\bin

配置完成后,记得重新打开DOS窗口,然后输入命令mvn -v,检查是否安装成功,如果成功,如下图所示:

然后,就要去配置项目中的pom.xml文件了,pom文件可以通过maven自动生成,这里就直接介绍需要配置的地方了:

<?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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Test</groupId>
  <artifactId>Test</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <plugins>
	    <plugin>
             <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
              <source>1.5</source>
              <target>1.5</target>
              <encoding>UTF-8</encoding>  
             </configuration>
            </plugin>
       <plugin>   
                <groupId>org.apache.maven.plugins</groupId>   
                <artifactId>maven-resources-plugin</artifactId>   
                <configuration>   
                    <encoding>UTF-8</encoding>   
                </configuration>   
            </plugin> 
	  <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-antrun-plugin</artifactId>
                 <version>1.3</version>
                <executions>
                    <execution>
                        <phase>pre-integration-test</phase>
                        <configuration>
                            <tasks>
				<sequential>
				<exec executable="cmd" >
				<arg line="/c sc stop Tomcat6"/>
				</exec>
				<sleep seconds="30" />
				<delete file="D:/cretomcat/webapps/Test.war" />
				<delete dir="D:/cretomcat/webapps/Test" />
				<delete dir="D:/cretomcat/work/Catalina/localhost" />
				<copy overwrite="true" todir="D:/cretomcat/webapps" file="target/Test.war" />
				<exec executable="cmd" >
				<arg line="/c sc start Tomcat6" />
				</exec>
				<echo taskname="waitfor" message="wait for deploy..." />
				<sleep minutes="1" />
				</sequential>
                            </tasks>
                        </configuration>
			<goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    </plugins>
	<finalName>Test</finalName>
  </build>
  <dependencies>
<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts-core</artifactId>
		<version>${strutsVersion}</version>
	</dependency>
<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>org.springframework.core</artifactId>
		<version>3.0.1.RELEASE</version>
		<classifier>A</classifier>
	</dependency>
  </dependencies>
  <properties>
		<springVersion>2.5.4</springVersion>
		<struts2Version>2.1.6</struts2Version>
  </properties>
</project>

这就是pom.xml配置完成后的文件内容,基本都可以看懂,有几点需要解释下:

1.<plugin>标签是引入maven的插件,这里引入了3个插件:

maven-compiler-plugin:

我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码

maven-resources-plugin:

maven-compiler-plugin用来编译Java代码,maven-resources-plugin则用来处理资源文件

maven-antrun-plugin:

由于Maven是做不了一些文件删除和Copy的动作的,所以它就必须请教Ant来帮它执行,因此就必须引入Ant插件,然后就是做了一连串的动作,目的就是为了让CC最新生成的War包成功地发布到Tomcat上,这里由于Tomcat是以服务的方式启动的,所以直接通过Dos命令Start即可

2.<dependency>则是依赖项的Maven坐标,根据坐标Maven可以找到对应的jar包进行引入,坐标对应的jar包是放在第三方仓库中,因此要去Maven目录下的setting.xml文件中设置jar包仓库的路径


去Maven的安装目录下配置setting.xml文件来建立镜像库,用于加载自己定义的jar包仓库

找到<mirrors>标签,加入第三方类库URL,如下图所示:

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
	  <mirror>
      <id>Nexus</id>
      <mirrorOf>*</mirrorOf>
      <name>Nexus Public Mirror</name>
      <url>http:127.0.0.1:8081//nexus/content/groups/public</url>
    </mirror>
  </mirrors>

最后,只需在IP地址对应的机器上安装Nexus并配置jar包和对应坐标就可以了,每次打包项目时,pom文件自动会根据dependency标签找到对应的jar包并放入到项目中去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值