把 Maven 的系统文件下载并保存。 例如我的: D:\NBProject\apache-maven-2.2.1
设置环境和变量 。我配置了一个 bat 文件。 执行后, 相关的环境变量就配置好了。
ECHO OFF
SET JAVA_HOME=D:\Program Files\Java\jdk1.6.0
SET M2_HOME=D:\NBProject\apache-maven-2.2.1
SET PATH=%PATH%;%M2_HOME%\bin
ECHO 准备执行测试Maven的版本信息.....
PAUSE
mvn -v
然后新建一个文件夹, 建立 pom.xml 文件 。 规范 :
groupId 定义了你的公司和组织的信息 。 比如,你的公司是 mycom , 项目是 myapp 那么,最好就定义
<groupId>com.mycom.myapp</groupId>
artifactId 就定义为项目的名称, 在我们项目中,如果和项目名称不一致,就导致Maven不能编译,
<artifactId>travel-hotel-admin</artifactId>
版本定义:
<version>2.0.0-SNAPSHOT</version>
SNAPSHOT 表示是快照版本, 尚在开发中的不稳定版本 。 Maven 遇到这种标记的版本号时, 每次都会去中央库取最原始的 Jar 包 。
<packaging>war</packaging>
打包类型 jsr war pom 它们的打包执行的命令不一样.
我们源代码最好也就按照 groupId 定义的名称,包名就定义为 com.mycom.myapp.xxxxxxx.xxxxxxxx
Eclipse中的项目还是包依赖:
比如: 项目中,包含这个依赖:
<dependency>
<groupId>com.woyo.travel</groupId>
<artifactId>travel-common-server-api</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
而且, Eclpse 也打开了这个工程, 那么Eclipse就会依赖这个工程. 如果这个工程被关闭了, 那么,就会去本地仓库中查找所依赖的Jar包。此时, 就是Jar包依赖了。 有时候,
POM 工程的继承:
通过在父工程中定义好 版本号, groupId ,version 等参数, 继承的工程不用定义这些参数,就会自动继承。
travel/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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxxxxxxxx.travel</groupId>
<artifactId>travel-hotel</artifactId>
<packaging>pom</packaging>
<name>travel hotel Parent pom.xml</name>
<version>2.0.0-SNAPSHOT</version>
<organization>
<name>travel</name>
<url>http://hotel.travel.woyo.com</url>
</organization>
<modules>
<module>travel-hotel-admin</module>
<module>travel-hotel-cc</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</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>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<filters>
<filter>${user.home}/travel_hotel.properties</filter>
</filters>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 主要依赖库的版本定义 -->
<spring.version>2.5.6</spring.version>
<spring.security.version>2.0.5.RELEASE</spring.security.version>
<struts2.version>2.2.1</struts2.version>
<ibatis.version>2.3.4.726</ibatis.version>
<mysql-driver.version>5.1.12</mysql-driver.version>
<slf4j.version>1.6.1</slf4j.version>
<!-- Plugin的属性定义 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<urlrewritefilter.version>3.1.0</urlrewritefilter.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
..............................................
</dependencies>
</dependencyManagement>
</project>
子工程定义在
travel/travel-hotel/pom.xml
这样的目录结构, 子工程的 pom 文件会自动在../pom 得到父工程的pom文件定义,否则需要定义
<relativePath>../travel/pom.xml</ relativePath>
才能找到
<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>
<parent>
<artifactId>travel-hotel</artifactId>
<groupId>com.woyo.travel</groupId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<groupId>com.woyo.travel</groupId>
<artifactId>travel-hotel-admin</artifactId>
<version>2.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>travel-hotel-admin</name>
<dependencies>
<dependency>
<groupId>com.woyo.travel</groupId>
<artifactId>travel-common-server-api</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
运行了 Maven install 命令后 , 会在本地 repository 仓库生成 对应的文件.
如果是打包成 war 包, 会自动把相应的 资源文件 , 依赖的 jar 包(包括传递依赖的)全部 Copy 到web-inf 目录,
衍生问题:
Maven 中 Jar 包传递依赖的问题:
Maven 2 的一个很明显的优势就是jar 包传递依赖的解决。
如果你使用的是m2eclipse 插件,那么最简单的找到传递依赖冲突的插件的方法,就是在Eclipse 中,打开pom.xml时,使用open with Maven Pom Editor,查看Dependency Hierachy,输入想查找的jar包名,可以看到它的父级依赖关系,即它是谁的传递依赖,有几个jar包依赖到这个jar包,分别使用的是什么版本都可以看到。
分享到:
相关推荐
这是maven管理的动态web项目的pom.xml配置文件,里面有ssm框架需要用到的jar包依赖
一、Idea关联的maven本地仓库配置...三、3个可单独使用的,maven项目文件pom.xml自定义配置 pom-maven-springboot-CusConfigV1.xml pom-maven-springboot-CusConfigV2.xml pom-maven-spring-CusConfigV1不推荐使用.xml
pom.xml配置文件,包含数据库,仓库地址配置等等
springmvc spring mybatis maven 项目管理pom文件
摘要:本文主要讲解是Maven使用过程中一些常用的命令,并配上图片说明,最后还讲了pom.xml文件的一些构造。-D传入属性参数-P使用pom中指定的配置-e显示maven运行出错的信息-o离线执行命令,即不去远程仓库更新包-X...
maven配置文件pom.xml
Maven的pom.xml配置文件详细配置说明 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
全面讲解Pom文件,全面讲解Pom文件,全面讲解Pom文件,全面讲解Pom文件,全面讲解Pom文件 全面讲解Pom文件,全面讲解Pom文件,全面讲解Pom文件,全面讲解Pom文件,全面讲解Pom文件
记录一下自己常用的maven工程的pom.xml配置详解,各个标签详解
将pom的依赖直接粘贴进pom.xml,运行bat文件就可以将jar包一次性下载。需要maven环境
maven项目pom.xml中parent标签的使用
本文主要阐述了maven build是用来干什么的,以及对build标签中各子元素配置的作用
Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令
maven多环境部署pom文件实例,简单实用。
之前在网路上一直找robotium的maven配置文件怎么写比较好,没有找到合适,只有去研究maven才配置好pom文件,这样才能在jenkins上面持续集成了
这个一个maven web项目的pom文件。主要包含运用spring mvc, spring, mybatis 框架时需要导入的依赖列表。旨在帮助一些愿在java web上进行开发的新手。大部分依赖都有其注释与说明。
基于ACTIVITI引擎进行开发,利用maven进行依赖管理,本文件列出来具体的依赖项
POM文件加入BIRT运行的所有依赖,再也不用去找jar包了
SSM框架整合jar包和maven pom.xml配置文件整合
这个pom文件中用一些SSM开发中常用的依赖jar,可以供初学者采纳。