maven命令

今天从svn服务器拉下来一个项目是,用以下命令运行后:

Java代码 复制代码
  1. mvn eclipse:eclipse   
  2. mvn clean package -Dmaven.test.skip=true  

Java代码 复制代码  收藏代码
  1. mvn eclipse:eclipse   
  2. mvn clean package -Dmaven.test.skip=true  

mvn eclipse:eclipse
mvn clean package -Dmaven.test.skip=true


发现用Eclipse里面以安装的Jboss服务器识别不了。后来才知道必须运行一下命令才能建立起web项目,之后就能加入到JBoss里面了:

Java代码 复制代码

  1. mvn eclipse:eclipse -Dwtpversion=1.0  
  2. mvn clean package -Dmaven.test.skip=true

执行:mvn archetype:create -DgroupId=com.example.mydemo -DartifactId=mydemo

后,会自动下载依赖的jar,pom文件。

 

 

2)、mvn 命令

     

Maven  clean compile  清空target/  编译项目主代码

Maven  clean test   执行测试命令

需要添加junit 的依赖

       <dependency>

              <groupId>junit</groupId>

              <artifactId>junit</artifactId>

              <version>4.7</version>

              <scope>test</scope>

       </dependency>

test 的scope元素,scope表示依赖范围,默认为compile,若依赖范围为test 则表示该依赖只对测试有效。

maven clean  package 打包命令,会看到在target 目录下生成了一个jar文件。

mvn clean install  发布命令,直接将jar包安装到到本地仓库中。但是还是不能运行jar 包,因为没有把main 方法的类信息添加在 manifest 文件中)。为了生成可执行的jar文件,我们还需要在pom.xml 中配置 maven-shade-plugin 插件:

<build>

       <plugins>

         <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.mapbar.tech.helloworld.HelloWorld</mainClass>

                            </transformer>

                       </transformers>

                     </configuration>

                </execution>

              </executions>

         </plugin>

       </plugins>

  </build>

 

(3)、mvn 目录介绍

       Bin

       Boot

       Conf :settting.xml,这个配置文件非常重要,一般我们复制一个setting.xml 文件到~/.m2/目录下,~表示用户目录。settting.xml用于配置一些全局性的东西,比如仓库,镜像

       Lib

 

(4)~/.m2 介绍

运行mvn help:system 这个命令的目的是执行了一个任务,比如maven-help-plugin 包括pom 文件和jar 文件。这些文件都被下载到本地仓库中。在C:/Documents and Settings/chenll/.m2/repository/org/apache/maven/plugins/maven-help-plugin下就可以看到下载的maven-help-plugin-2.1.1.jar。

 

(5)、在eclipse中安装Maven插件(m2eclipse)

在eclipse 菜单中选择Help.然后选择 Install New Software。。。弹出一个对话框,在对话框中双击Add 按钮输入路径http://m2eclipse.sonatype.org/sites/m2e。单击OK 。eclipse会下载安装点上的资源信息。等资源载入以后。点击next,eclipse 会自动计算模块间依赖。

(6)、maven 的生命周期

Maven命令:clean 、compile、test、package、install、site等,这些都对应着Maven生命周期的一个阶段(phase)。

       Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:

·         Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

·         Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

·         Site Lifecycle 生成项目报告,站点,发布站点。

 

(7)、仓库

在maven 项目中任何一个构件的方式都是完全相同的,maven 可以在某个位置统一存储所有maven项目共享的构件,比如log4j-1.2.jar包几乎在每个项目中都有。Maven项目不在将各自存储其依赖文件,它们只需要声明这些依赖的坐标,在需要的时候(比如,在编译项目的时候需要将依赖加入到classapath中),Maven 会自动根据坐标找到仓库中的构件。

坐标格式:groupid/artifactid/version/artifactid-version.packaging。

 

(8)、仓库的分类

仓库可以分为两大类,本地仓库和远程仓库。当maven根据坐标寻找构件的时候,首先在本地仓库查找,如果本地仓库存在则直接使用,如果本地仓库不存在,或者查看是否有更新的版本,maven 则回去远程仓库查看,发现以后下载到本地仓库使用,如果都没有则会报错。私服是一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。内部的项目还能部署到私服上供其它,项目使用。

1)、本地仓库。每个用户在自己的目录下都有一个路径名为.m2/repository/的仓库目录。如果用户需要定义自己的目录,需要编辑~/.m2/setting.xml 设置localRepository 元素的值

<setting>

       <localRepository>d:/java/repository/</localRepository>

</setting>

2)、中央库。Maven 必须知道至少一个可用的远程仓库,才能在执行Maven 命令的时候下载到需要的构件,(http://repo1.maven.org/maven2)这个中央库几乎包含了世界上大部分流行开源框架项目构件。

3)、私服。私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,当maven 需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载。

缓存在私服上之后,再为Maven 的下载请求提供服务。

 

(9)、依赖的配置

       <dependencies>

       <dependency>

              <groupid>springFramework</groupid>

              <artifactid>spring-core</artifactid>

              <version>1.0.1</version>

              <type>pom</type>

              <scope></scope>

              <optional></optional>

</dependency>

</dependencies>

 

Groupid:定义maven 项目隶属的实际项目。比如springFramework

Artifactid:定义实际项目中的一个模块。比如spring-core,spring-context

Version:版本号。2.0.0

Packageing:打包方式,.jar,.war。

Classifier:该元素用来帮组定义构件输出的一些附属构件。

其中groupid,artifactid,version 是必须定义的,packaging 是可选的,默认为jar.

 

(10)、Nexus 创建私服

       1)、下载Nexus :http://nexus.sonatype.org/downloads/。

       Nexus 是典型的java Web应用,有两种安装包,一种是包含jetty容器的Bundle包,另一种是不包含web容器的war包。

Nexus-webapp/:目录包含了Nexus 运行所需要的文件、如启动脚本、依赖jar包

Sonatype-work/:该目录包含Nexus生成的配置文件、日志文件、仓库文件。

在window操作系统,用户需要进入nexus-webpp/bin/jsw/windows-x86-32/子目录,然后直接运行nexus.bat 启动Nexus.

 

2)、打开http://localhost:8081/nexus/

就能看到Nexus 的界面。默认的登录用户是admin/admin123。

 

3)、创建仓库

仓库分四种类型:group(仓库组)、hosted(宿主)、proxy(代理)、virtual(虚拟)。

Maven 可以直接从宿主仓库下载构件,maven也可以从代理仓库下载构件,而代理仓库会间接从远程仓库下载并缓存构件。在Repositories 界面创建对应的仓库后在sonatype-work 目录下会生产一个对应的路径。比如在宿主仓库下创建一个id 为010的仓库D:/nexus1.9/sonatype-work/nexus/storage/010。

Nexus 三个重要的代理仓库,有中央仓库,Apache 快照仓库,和Codehaus 快照仓库。这三个仓库维护了成千上万的构建,全部下载到本地不切实际,所以大部分都维护了一个编录整个内容的Lucene 索引,以便提供快速和有效的搜索。

a、Apache Snapshots:这个仓库包含了来自于Apache软件基金会的快照版本。http://people.apache.org/repo/m2-snapshot-repository

b、Codehaus Snapshots:这个仓库包含了来自于Codehaus的快照版本。 http://snapshots.repository.codehaus.org/

c、Central Maven Repository :这是中央Maven仓库(发布版本)。 http://repo1.maven.org/maven2/

 

4)、上传构件,在创建好的仓库中有Artifat  Upload 选项卡。上传构件的方式有两种,第一种是maven构件的,那么可以在GAV Definition 下拉列表中选择From POM ,否则就选GAV Parameters。用户需要为该构件定义一个Maven 坐标。Group,artifact,version。

5)、Nexus 权限管理

组织中使用Nexus 有一些安全性的需要,比如只有管理员才能配置nexus,某些团队成员才能部署构件,Nexus 根据需求提供了全面的权限控制特性,能让用户自由的根据需求配置Nexus用户、角色、权限。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值