`
weitao1026
  • 浏览: 1047726 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mvn的常用命令

阅读更多

1. mvn help:describe 你是否因为记不清某个插件有哪些goal而痛苦过,你是否因为想不起某个goal有哪些参数而苦恼,那就试试这个命令吧,它会告诉你一切的. 参数: 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:与-Dplugin一起使用,它会列出某个插件的goal信息,如果嫌不够详细,同样可以加-Ddetail.(注:一个插件goal也被认为是一个 “Mojo”) 下面大家就运行mvn help:describe -Dplugin=help -Dmojo=describe感受一下吧!

2. mvn archetype:generate 你是怎么创建你的maven项目的?是不是像这样:mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote -Dartifact=common,如果你还再用的话,那你就out了,现代人都用mvn archetype:generate了,它将创建项目这件枯燥的事更加人性化,你再也不需要记那么多的archetypeArtifactId,你只需输入archetype:generate,剩下的就是做”选择题”了.

3. mvn tomcat:run 用了maven后,你再也不需要用eclipse里的tomcat来运行web项目(实际工作中经常会发现用它会出现不同步更新的情况),只需在对应目录(如/ryanote)里运行 mvn tomat:run命令,然后就可在浏览器里运行http://localhost:8080/ryanote查看了.如果你想要更多的定制,可以在pom.xml文件里加下面配置: 01 02 03 04 org.codehaus.mojo 05 tomcat-maven-plugin 06 07 /web 08 9090 09 10 11 12 当然你也可以在命令里加参数来实现特定的功能,下面几个比较常用: 1. 跳过测试:-Dmaven.test.skip(=true) 2. 指定端口:-Dmaven.tomcat.port=9090 3. 忽略测试失败:-Dmaven.test.failure.ignore=true 当然,如果你的其它关联项目有过更新的话,一定要在项目根目录下运行mvn clean install来执行更新,再运行mvn tomcat:run使改动生效.

4. mvnDebug tomcat:run 这条命令主要用来远程测试,它会监听远程测试用的8000端口,在eclipse里打开远程测试后,它就会跑起来了,设断点,调试,一切都是这么简单.上面提到的那几个参数在这里同样适用.

5. mvn dependency:sources 故名思义,有了它,你就不用到处找源码了,运行一下,你项目里所依赖的jar包的源码就都有了

 

Maven常用命令

  • mvn archetype:create :创建 Maven 项目

  • mvn compile :编译源代码

  • mvn test-compile :编译测试代码

  • mvn test : 运行应用程序中的单元测试

  • mvn site : 生成项目相关信息的网站

  • mvn clean :清除目标目录中的生成结果

  • mvn package : 依据项目生成 jar 文件

  • mvn install :在本地 Repository 中安装 jar

  • mvn eclipse:eclipse :生成 Eclipse 项目文件

  • mvn -Dmaven.test.skip=true : 忽略测试文档编译
  • Maven常用命令

    1. 检测Maven、JDK版本 mvn –v 或者 mvn -version
    2. 获取帮助选项 mvn –h 或者 mvn –help
    3. 显示详细错误信息 mvn –e
    4. 创建Java项目 mvn archetype:create -DgroupId=${groupId} -DartifactId=${artifactId} 示例:mvn archetype:create -DgroupId=com.howsun -DartifactId=myApp-Dversion=0.1
    5. 创建Web项目 mvn archetype:create -DgroupId=${packageName} -DartifactId=${webappName} -DarchetypeArtifactId=maven-archetype-webapp
    6. 创建其它项目(例如SSH、JPA、JSF、Seam…) mvn archetype:generate然后根据提示选择项目骨架、groupid、artifactid、版本号…Maven3已有上百个项目骨架
    7. 转换成Eclipse工程 mvn eclipse:eclipse mvn eclipse:clean //清除Eclipse设置信息 转换成idea项目:mvn idea:ide
    8. 编译 mvn compile
    9. . 编译测试代码 mvn test-compile
    10. . 产生Site: mvn site
    11. . 测试 mvn test //运行测试 mvn test -Dtest=${类名} //单独运行测试类
    12. . 清除 mvn clean //将清除原来编译的结果
    13. . 打包 mvn packagemvn package –Dmaven.test.skip=true //打包时不执行测试
    14. . 发布 mvn install //将项目打包成构件安装到本地仓库 mvn deploy //发布到本地仓库或服务器(例如Tomcat、Jboss)
    15. . 手动添加构件到仓库 mvn install:install-file -Dfile=${jar包文件位置} -DgroupId=${groupId} -DartifactId=${artifactId} -Dversion=${版本号} -Dpackaging=jar -DgeneratePom=${是否同时创建pom文件}
    16. . 复制依赖构件到相应目录 mvn dependency:copy-dependencies -DoutputDirectory=${目标目录} -DexcludeScope=${scope} -Dsilent=true 示例: mvn dependency:copy-dependencies -DoutputDirectory=WebRoot/WEB-INF/lib -Dsilent=true -DincludeScope=runtime
    17. . 显示一个插件的详细信息(configuration, goals等): mvn help:describe -Dplugin=pluginName –Ddetail
  • 工程配置文件 pom.xml

    是Maven项目的核心配置文件,位于每个工程的根目录,指示Maven工作的元数据文件。 节点介绍

    1. :文件的根节点 .
    2. : pom.xml使用的对象模型版本 .
    3. :创建项目的组织或团体的唯一 Id.
    4. :项目的唯一 Id, 可视为项目名 .
    5. :打包类型,一般有JAR,WAR,EAR 等
    6. :产品的版本号 .
    7. :项目的显示名,常用于 Maven 生成的文档。
    8. :组织的站点,常用于 Maven 生成的文档。
    9. :项目描述,常用于 Maven 生成的文档。
    10. . :构件依赖:模型继承
    11. . :依赖管理
    12. . :创建报告
    13. . :构建
    14. . :引用第三方仓库
    15. . :许可

     

     

    当我们通过模版(比如最简单的maven-archetype-quikstart插件)生成了一个maven的项目结构时,如何将它转换成eclipse支持的java project呢?

    1. 定位到maven根目录下(该目录下必须有pom.xml)。

    2. 使用maven命令 mvn eclipse:eclipse

    3. 进入到根目录下,你会发现自动生成了熟悉的两个文件:.classpath 和 .project。

    4. 打开eclipse,找到该项目路径,导入即可。

     

    3.2. POM

    POM全称是Project Object Model,即项目对象模型。pom.xml是maven的项目描述文件,它类似与antx的project.xml文件。pom.xml文件以xml的 形式描述项目的信息,包括项目名称、版本、项目id、项目的依赖关系、编译环境、持续集成、项目团队、贡献管理、生成报表等等。总之,它包含了所有的项目 信息。

    3.2.1. pom.xml的基本配置

    <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>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>my-project</artifactId>
      <version>1.0</version>
    </project>
    

    modelVersion 描述这个POM文件是遵从哪个版本的项目描述符。

    groupId 针对一个项目的普遍唯一识别符。通常用一个完全正确的包的名字来与其他项目的类似名字来进行区分(比如:org.apache.maven)。

    artifactId 在给定groupID 的group里面为artifact 指定的标识符是唯一的 , artifact 代表的是被制作或者被一个project应用的组件(产出物)。

    version 当前项目产生的artifact的版本

    以上4个元素缺一不可,其中groupId, artifactId, version描述依赖的项目唯一标志。

    3.2.2. pom.xml文件结构

    <project>
      <modelVersion>4.0.0</modelVersion>
      <!- The Basics   项目的基本信息->
      <groupId>...</groupId>
      <artifactId>...</artifactId>
      <version>...</version>
      <packaging>...</packaging>
      <dependencies>...</dependencies>
      <parent>...</parent>
      <dependencyManagement>...</dependencyManagement>
      <modules>...</modules>
      <properties>...</properties>
      <!- Build Settings  项目的编译设置->
      <build>...</build>
      <reporting>...</reporting>
      <!- More Project Information 其它项目信息 ->
      <name>...</name>
      <description>...</description>
      <url>...</url>
      <inceptionYear>...</inceptionYear>
      <licenses>...</licenses>
      <organization>...</organization>
      <developers>...</developers>
      <contributors>...</contributors>
      <!-- Environment Settings  ->
      <issueManagement>...</issueManagement>
      <ciManagement>...</ciManagement>
      <mailingLists>...</mailingLists> 
      <scm>...</scm>
      <prerequisites>...</prerequisites>
      <repositories>...</repositories>
      <pluginRepositories>...</pluginRepositories>
      <distributionManagement>...</distributionManagement>
      <profiles>...</profiles>
    </project>
    

    project是pom.xml的根节点,至于其它元素请参考POM Reference

    3.2.3. POM很重要的3个关系

    POM有3个很重要的关系:依赖、继承、合成。

    3.2.3.1. 依赖关系

    <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.0</version>
          <type>jar</type>
          <scope>test</scope>
          <optional>true</optional>
        </dependency>
        ...
    </dependencies>

    如果想依赖一个maven库中没有的一个jar包,方法很简单,就是先将此jar包使用以下的命令安装到本地maven库中:

    mvn install:install-file -Dfile=my.jar -DgroupId=mygroup -DartifactId=myartifactId -Dversion=1
    

    再把依赖关系加进去即可。

    3.2.3.2. 继承关系

    另一个强大的变化, maven带来的是项目继承。

    3.2.3.2.1. 定义父项目
    <project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.mygroup </groupId>
      <artifactId>my-parent</artifactId>
      <version>2.0</version>
      <packaging>pom</packaging>
    </project>

    packaging 类型,定义值为 pom用于定义为parent和合成多个项目。 当然我们创建的maven项目的pom都继承maven的super pom, 如果想看项目(父或子)的完全的pom结构,可以运行:

    mvn help:effective-pom
    

    就可以了。

    3.2.3.2.2. 子项目配置
    <project>
       <modelVersion>4.0.0</modelVersion>
       <groupId>com.mygroup </groupId>
       <artifactId>my-child-project</artifactId>
       <parent>
            <groupId>com.mygroup </groupId>
            <artifactId>my-parent</artifactId>
            <version>2.0</version>
            <relativePath>../my-parent</relativePath>
        </parent>
    </project>
    

    relativePath可以不需要,但是用于指明parent的目录,用于快速查询。

    3.2.3.3. 合成关系

    一个项目有多个模块,也叫做多重模块,或者合成项目。 如下的定义:

    <project>
       <modelVersion>4.0.0</modelVersion>
       <groupId>com.mygroup </groupId>
       <artifactId>my-parent</artifactId>
       <version>2.0</version>
       <modules>
           <module>my-child-project1<module>
           <module>my-child-project2<module>
       </modules>
    </project>
    

    其中module 描述的是子项目的相对路径 。

    3.2.4. dependencyManagement和Profile

            Maven 还我们提供了一个dependencyManagement元素,用来提供了一种方式来统一依赖版本号。dependencyManagement元素一 般用在顶层的父POM。使用pom.xml中的dependencyManagement元素能让你在子项目中引用一个依赖而不用显式的列出版本号。 Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个 dependencyManagement元素中指定的版本号,这样就解决了修改依赖版本号不完全的问题。

            Maven的Profile元素可以为一个特殊的环境自定义一个特殊的构建,使得不同环境间构建的可移植性成为可能。比如要使用 production profile来运行mvn install,你需要在命令行传入-Pproduction参数,这里production是profile的id。要验证production profile覆盖了默认的Compiler插件配置,可以像这样以开启调试输入(-X) 的方式运行Maven。

     

    Maven 安装 JAR 包的命令是:

    mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar


    例如:
    我下载的这个 jar 包是放到了 D:\mvn 目录下(D:\mvn\spring-context-support-3.1.0.RELEASE.jar)
    那么我在 cmd 中敲入的命令就应该是:

    mvn install:install-file -Dfile=D:\mvn\spring-context-support-3.1.0.RELEASE.jar -DgroupId=org.springframework -DartifactId=spring-context-support -Dversion=3.1.0.RELEASE -Dpackaging=jar

    回车,显示安装成功:

     

    Maven : 将Jar安装到本地仓库和Jar上传到私服

     

    举例

    1. 依赖如下:

    <dependency>
          <groupId>org.quartz-scheduler.internal</groupId>
          <artifactId>quartz-terracotta-bootstrap</artifactId>
          <version>2.2.2-SNAPSHOT</version>
    </dependency>

     

     

    将Jar包安装到本地仓库命令:

    mvn install:install-file -Dfile=D:\quartz-terracotta-bootstrap-2.2.2-SNAPSHOT.jar -DgroupId=org.quartz-scheduler.internal -DartifactId=quartz-terracotta-bootstrap -Dversion=2.2.2-SNAPSHOT -Dpackaging=jar

     

    -- DgroupId和DartifactId构成了该jar包在pom.xml的坐标, 对应依赖的DgroupId和DartifactId
    -- Dfile表示需要上传的jar包的绝对路径
    -- Dpackaging 为安装文件的种类

     

     

    2. 上传Jar到私服  

    命令:

    mvn deploy:deploy-file -DgroupId=org.terracotta.toolkit -DartifactId=terracotta-toolkit-api-internal -Dversion=1.12 -Dpackaging=jar -Dfile=D:\terracotta-toolkit-api-internal-1.12.jar -Durl=http://ip:port/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty

     

     

    -- DgroupId和DartifactId构成了该jar包在pom.xml的坐标, 对应依赖的DgroupId和DartifactId
    -- Dfile表示需要上传的jar包的绝对路径
    -- Durl私服上仓库的url精确地址(打开nexus左侧repositories菜单,可以看到该路径)
    -- DrepositoryId服务器的表示id,在nexus的configuration可以看到

     

分享到:
评论

相关推荐

    mvn 常用命令手册mvn开发必备

    ### MVN常用命令详解 Maven 是一个项目管理和理解工具,它包含了一个项目对象模型 (POM),一组标准集合,一个项目生命周期,一个依赖管理机制,用于运行构建任务的插件集合,以及用来扩展现有功能的插件机制。在...

    mvn常用命令

    MVN常用命令 MVN(Maven)是一款基于项目对象模型(POM)的项目管理工具,它可以帮助开发者管理项目的依赖关系、编译、测试、打包和部署。下面是MVN的常用命令: 创建Maven项目 1. 创建Maven的普通Java项目:`mvn...

    Mvn常用命令总结

    ### Maven常用命令总结 Maven是一款非常流行的Java项目构建工具,它通过一组生命周期构建规则来管理项目的构建过程,包括编译、测试、打包、部署等。掌握Maven的基本使用方法对于进行Java项目的开发和维护至关重要...

    mvn配置命令文档

    ### Maven配置与常用命令详解 #### 一、Maven简介 Maven是Apache软件基金会组织下的一个开源项目,它是一个项目管理和理解工具。Maven通过一个中心信息来管理项目的构建、报告和文档,大大简化了Java项目的构建...

    maven常用命令

    Maven 常用命令大全 Maven 是一个项目管理和构建自动化工具,提供了许多实用的命令来简化项目的开发和维护过程。在这篇文章中,我们将总结和讲解 Maven 中的一些常用命令,它们将帮助您更好地使用 Maven。 创建 ...

    mvn常用命令行

    `mvn site` 命令用于生成项目文档和报告,包括测试覆盖率、Javadoc 等。 7. **打包**: `mvn package` 将编译后的代码打包成 JAR 或 WAR 文件,同时执行测试。 8. **本地仓库安装**: `mvn install` 将打包好的...

    maven常用命令.docx

    以下是对标题和描述中提及的Maven常用命令的详细解释: 1. `mvn clean`:这个命令用于清理项目,删除`target`目录下的所有生成物,包括编译后的类文件、测试结果等。 2. `mvn compile`:编译项目的源代码,将`src/...

    maven 常用命令集合

    maven 常用命令集合 Maven 是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,主要用于 Java 项目的构建、测试和部署。Maven 的强大之处在于其提供了一种标准化的方式来构建、测试和部署项目,...

    Maven常用命令大全与pom文件讲解

    摘要:本文主要讲解是Maven使用过程中一些常用的命令,并配上图片说明,最后还讲了pom.xml文件的一些构造。-D传入属性参数-P使用pom中指定的配置-e显示maven运行出错的信息-o离线执行命令,即不去远程仓库更新包-X...

    maven常用的命令

    Maven 常用命令 Maven 是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,主要用于管理和构建 Java 项目。以下是 Maven 中的一些常用命令: 1. 创建项目 Maven 提供了 archetype 机制来快速...

    Maven常用命令 Maven Maven学习

    Maven常用命令 Maven Maven学习

    maven常用命令.txt

    ### Maven常用命令详解 #### 1. `mvn -v` - **命令**: `mvn -v`(注意:实际命令应为 `mvn --version` 或 `mvn -version`) - **功能**: 显示Maven当前版本信息。 - **应用场景**: 当需要确认当前使用的Maven版本时...

    maven常用命令以及以个测试项目

    本篇文章将深入探讨Maven的常用命令,并通过一个测试项目来展示这些命令的实际应用。 ### Maven常用命令 1. **初始化项目结构**: - `mvn archetype:generate` 是用于创建一个新的Maven项目的基础框架。你可以...

    java+mvn爬虫

    3. Maven命令:常用命令包括`mvn clean`清理目标目录,`mvn compile`编译源代码,`mvn package`打包项目,`mvn install`将项目安装到本地仓库,方便其他项目引用。 三、爬虫实现步骤 1. 发起HTTP请求:使用...

    maven学习与命令

    #### 二、常用Maven命令详解 ##### 1. 创建Java项目 ```sh mvn archetype:create -DgroupId=packageName -DartifactId=projectName ``` **解释:** - `mvn archetype:create`:使用Maven的原型插件创建新项目。 - `...

    Maven常用命令

    Maven常用命令 mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码 mvn test-compile :编译测试代码 mvn test : 运行应用程序中的单元测试 mvn site : 生成项目相关信息的网站 mvn clean :清除...

Global site tag (gtag.js) - Google Analytics