`

Maven学习小结(二)--Maven命令与pom

阅读更多

Maven的构建文件是pom.xml,(P roject O bject M odel ,项目对象模型),相当于ant的build.xml。

在成功安装Maven3后,可以在dos界面,运行命令:

mvn archetype:generate

这个命令会生成一个标准的Maven项目骨架。其中有些选项要输入,可参照下面的pom.xml文件,或者直接回车,选择默认。

 

现在看看一个简单的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.wole.chow</groupId>
  <artifactId>helloworld</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Maven Hello World Project</name>
</project> 

 

<modelVersion>元素对Maven2和3来说,都是4.0.0。

<groupId>定义了项目属于哪个组,一般来说,名字是com.companyName.projectName。

<artifactId>,翻译为构件Id,定义了该组中唯一的Id。

<version>定义了项目的版本号。

<name>,可选的,声明一个对用户更友好的名称。

说明:<groupId>,<artifactId>,<version>三个元素,在Maven中组成一个坐标,唯一地确定一个构件(jar文件)。

 

 

项目主代码默认目录是:src/main/java,在该目录下的文件会打包成jar。一般来说,项目中 Java 类的包都应该基于项目的 groupId artifactId ,这样更加清晰,更加符合逻辑,也方便搜索构件或者 Java 类。如上述的pom,在该目录下应该创建com.wole.chow.HelloWorld.java类。

项目测试目录:src/test/java,在Maven中,项目主代码与测试代码是分开的,使结构清晰。

 

在上述的pom.xml的<project>标签内加入以下的xml代码,

   <dependencies>  
     <dependency>  
        <groupId>junit</groupId>  
        <artifactId>junit</artifactId>  
        <version>4.7</version>  
        <scope>test</scope>  
     </dependency>  
   </dependencies> 

 上面的代码是增加junit类库的依赖,并限定只能在test的范围内使用。同样的<groupId>,<artifactId>,<version>三个元素唯一地确认了一个jar文件。在重新compile项目时,maven会到中心仓库找到该jar文件。中心仓库的地址:http://repo1.maven.org/maven2/

 

 

命令解析:

mvn clean : 清理(删除)输出目录 target,target目录是maven对项目构建的文件的默认输出目录。一般执行compile,test,package,install等命令时要先执行clean命令。例如:mvn clean compile

mvn compile : 编译项目主代码到target的classes目录中。

mvn test : 编译测试代码,但在 Maven 执行测试( test )之前,它会先自动执行项目主资源处理,主代码编译,测试主资源处理,测试代码编译等工作,这是 Maven 生命周期的一个特性。maven运行测试是通过一个叫surefire的插件,这插件可以显示一些统计信息。

mvn package : 打包,默认是生成jar文件。jar文件会生成在target目录里,文件名是 " <artifactId>-<version>.jar ",上述pom,就会生成 helloworld-1.0-SNAPSHOT.jar的文件。

mvn install : 安装,就是把Jar文件放入本地的本地仓库,install 成功后,别的项目就可以直接引入这个jar。从dos窗口可以看到类似的输出信息:

install sth to xxx\.m2\repository\com\wole\chow\helloworld\ 1.0 -SNAPSHOT\hello-world- 1.0 -SNAPSHOT.jar

 

p.s : 如果在官方的中心仓库找不到指定的Jar文件,可以自己添加本地的jar到本地的repository里,命令如下:

mvn install:install-file -Dfile=pathToMongo\mongo-2.2.jar -DgroupId
=com.wole.mongo -DartifactId=mongo -Dversion=2.2 -Dpackaging=jar

这样在自己项目的pom.xml里添加对其引用就可以了,如下:

		<dependency>
			<groupId>com.wole.mongo</groupId>
			<artifactId>mongo</artifactId>
			<version>2.2</version>
		</dependency>
 

 

 

如果要生成可运行的jar文件,就要指定main函数,可增加:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>1.2.1</version>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>shade</goal>
      </goals>
      <configuration>
        <transformers>
          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
           <mainClass>com.wole.chow.HelloWorld





</mainClass>
         </transformer>
       </transformers>
     </configuration>
     </execution>
  </executions>
</plugin>

 增加的是一个插件,插件在pom中的位置应该是<project><build><plugins>中。

 

上述所有的命令在eclipse安装了m2eclipse插件后,完全可以在eclipse中执行的。

 

分享到:
评论

相关推荐

    maven安装和使用

    #### 六、小结 通过以上步骤,我们可以成功地安装并配置Maven,以及在MyEclipse中创建Maven项目。Maven的自动化构建特性极大地简化了项目构建流程,提高了开发效率。无论是对于新手还是资深开发者来说,掌握Maven都...

    maven使用小结

    ### Maven使用小结 #### Maven简介 Maven是一款由Apache基金会提供的开源项目管理和构建工具,其设计理念基于项目对象模型(Project Object Model, POM)。通过一个中心信息片(即POM文件),Maven能够实现对项目...

    maven Pom详解.pdf

    #### 小结 POM 文件是 Maven 项目的基础配置文件,通过它,Maven 能够自动完成项目的构建过程,包括编译、测试、打包、部署等一系列操作。合理配置 POM 文件可以帮助开发者更高效地管理项目的构建流程和依赖关系,...

    maven 环境搭建总结

    ### Maven环境搭建与配置详解 #### 一、Maven简介 Maven是Apache下的一个开源项目,它是一种项目管理和理解工具。通过一个中心信息管理的方式,Maven能够管理项目的构建、报告和文档。Maven使用描述性的XML文件来...

    maven 打jar包,source包,并上传到本地maven库

    #### 小结 本文详细介绍了如何使用Maven打包可执行的Jar文件、源代码Jar包,并将其上传至本地Maven库的过程。这些操作对于管理项目依赖、构建可部署的应用程序以及分发源代码等方面具有重要意义。通过上述步骤,...

    Apache Maven 3.doc

    #### 二、Maven 的安装与运行 **2.1 验证 Java 安装** 确保系统已经正确安装了 Java,并且环境变量配置正确。 **2.2 下载 Maven** 可以从 Apache 官网下载 Maven 的最新版本。 **2.3 安装 Maven** - **2.3.1 ...

    maven-definitive-guide

    #### 二、Maven的安装与运行 **2.1 验证Java安装** 确保系统中已安装Java是使用Maven的前提条件之一。可以通过命令行输入`java -version`来检查Java版本是否满足Maven的要求。 **2.2 下载Maven** Maven可以从其官方...

    Maven deploy配置方法详解

    小结 Maven deploy 配置方法详解,通过将项目的 jar 包上传到远程仓库中,以便其他开发者和工程共享。需要在 pom.xml 文件中配置 distributionManagement 标签,并在 setting.xml 文件中添加认证信息。同时,需要...

    Maven 中文手册

    **3.5 小结** 通过简单的示例介绍了Maven的核心概念和基本操作。 #### 四、定制一个Maven项目 **4.1 定义SimpleWeather项目** 创建一个简单的天气预报项目,用于演示如何定制Maven项目。 **4.2 创建SimpleWeather...

    Maven实战2_maven_

    ### 小结 《Maven实战2》教程全面介绍了Maven的使用,包括基础概念、核心功能、命令操作以及高级应用。通过学习,你可以熟练掌握Maven,提升项目管理能力,实现快速、稳定的软件开发。阅读提供的"Mavenʵۡ2.pdf...

    maven开发流程

    #### 小结 通过上述介绍,我们可以看出Maven为开发者提供了极大的便利,特别是在依赖管理和自动化构建方面。它使得开发者能够专注于业务逻辑而不是繁琐的构建细节,极大地提升了开发效率。无论是对于初学者还是经验...

    maven本地仓库安装代码

    ### 小结 通过本文的介绍,我们可以了解到Maven作为一种强大的构建工具,在Java开发中扮演着重要的角色。正确理解和使用Maven本地仓库,对于简化项目构建流程、提高开发效率具有重要意义。希望本文能够帮助读者更好...

    Maven高级适合学习使用''

    #### 小结 通过上述步骤,我们成功地创建了一个基于Maven的聚合项目,并且为不同的功能划分了子模块。这样做的好处是显而易见的:一方面,可以更好地组织和管理代码;另一方面,也有助于团队成员之间的协作和分工。...

Global site tag (gtag.js) - Google Analytics