面将原文主要内容整理下来,原文参见网址http://www.ibm.com/developerworks/cn/education/java/j-mavenv2/index.html。其中部分地方有误,可以参看下文解决问题。 1. 新建一个项目,groupid = com.lzy.mvntest , artifactId为NumOps,和版本号一起唯一标识工程。 在命令行下 mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.lzy.mvntest -DartifactId=NumOps 该命令为 Archetype 插件提供您模块的坐标:com.ibm.devworks/NumOps/1.0-SNAPSHOT。 在此情况下,不需要指定版本,因为 Archetype 插件常默认为 1.0-SNAPSHOT。 此命令为项目创建了一个起始的 pom.xml 文件,也创建了规范的 Maven 2 目录结构。 2. 写好对应的java文件以后,在pom.xml文件里面加入以下build信息 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version>(这个地方没有加上的话会报错,参考http://maven./plugins/maven-compiler-plugin/usage.html) <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> 进入到项目文件夹中使mvn compile进行编译
3. 在对应的test目录下面写测试文件,使用命令mvn test进行编译和测试 4. 在项目整合的时候, 每一个均有自己的pom.xml文件,同时在最顶层有主项目的pom.xml文件 <project xmlns="http://maven./POM/4.0.0" xmlns:xsi="http://www./2001/XMLSchema-instance" xsi:schemaLocation="http://maven./POM/4.0.0 http://maven./maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ibm.devworks</groupId> <artifactId>mavenex2</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <name>Maven Example 2</name> <url>http://maven.</url> <modules> <module>NumOps</module> <module>OpsImp</module> </modules> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> <dependencyManagement> <dependencies> <dependency> <groupId>com.ibm.devworks</groupId> <artifactId>OpsImp</artifactId> <version>${project.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> 其中对于junit的依赖,模块中不用重复写,因为继承了主模块的属性。 <modules>标签和打包类型为pom表示这个是一个多模块的项目 <dependencyManagement> 标记不指定此模块依赖的依赖项。 相反,它主要由子模块使用。 子模块能指定 <dependencyManagement> 标记中任何条目的依赖项,而无需指定具体的版本号。 当项目树更改依赖项的版本号时,这很有用,可以使需编辑的条目数目最小化。 在本例中,OpsImp 项目的版本号是使用 ${project.version} 指定的。 在执行 Maven 时,这是一个会被相应值所填充的参数。 5. 使用mvn test 或者mvn complie进行编译,使用mvn install进行打包。 使用mvn help:effective-pom 显示集成后的pom的内容 。 6. eclipse的maven的插件安装以及使用参考命令行下的步骤后较为简单,在此不记录。 7.
因为依赖的组件大部分是在组件库中,有时需要手动添加组件进来。在eclipse里面先要导入自己工程依赖的组件,然后再添加依赖项的功能中找到对应的。
具体方法是在项目点右键,import->install or deploy an artifact to a Maven
repository,添加后,再项目点右键->maven->add dependency输出刚才导入的依赖组件即可。 如果要手动输入的话按照以下命令: mvn install:install-file -Dfile=sqljdbc.jar -DgroupId=com.lee -DartifactId=sqljdbc -Dversion=5.1.18 -Dpackaging=jar 其中Dfile是jar包路径,依次是groupid,artifactid和版本号以及打包方式。 执行命令后需要手动将其拷入到本地仓库中,仓库地址参考maven的配置文件。然后在文件中加入相关的dependency标签或者项目即可。
|