maven的环境搭建

必须先下载并安装JDK,配置JDK的环境变量JAVA_HOME,否则maven将无法使用

1.windows下搭建maven

①首先去官网下载 Maven:http://maven.apache.org/download.cgi

    我使用的是 apache-maven-3.3.3-bin.tar.gz

②下载之后解压

配置 maven 环境变量:

  环境变量添加:MAVEN_HOME = D:\Program Files\apache-maven-3.3.3

  环境变量修改:path = %MAVEN_HOME%\bin

④打开 cmd,在里面敲:mvn -v


⑤eclipse里面配置maven

Help->Eclipse Marketplace搜索maven,找到Maven Integration for Eclipse 点击安装即可

安装完毕之后重启

重启后,为了使得Eclipse中安装的Maven插件和windows中安装的那个相同,需要让eclipse中的maven重新定位一下,点击Window -> Preference -> Maven -> Installation -> Add进行设置


设置成功即安装完成。


设置的时候遇到的问题:

问题描述: Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-antrun-plugin:
 1.8:run (execution: compile, phase: compile)

问题解决方案:https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html
1、最简单的解决此报错的方法是在<plugins>的外层添加一个<pluginManagement>,问题是可以解决,但是运行会出现问题,插件实际没有被运行。
<pluginManagement>:这是一个插件管理模块,是给继承的子项目引用使用的该元素中配置的依赖插件不会造成实际插件的行为,当子模块 pom 中配置了真正的plugin 元素,并且 groupId、artifactId 与 pluginManagement 中配置的插件匹配时, pluginManagement 的配置才会影响实际的插件行为。
2、由于这个报错,不会影响实际的使用,所以可以推断,报错应该是由使用的开发工具产生的,修改这个文件
eclipse->preference->maven->lifecycle mappings中的lifecycle-mapping-metadata.xml,

[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>
    <lifecycleMappingMetadata>
      <pluginExecutions>
        <pluginExecution>
          <pluginExecutionFilter>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <goals>
              <goal>create-timestamp</goal>
            </goals>
            <versionRange>[0.0,)</versionRange>
          </pluginExecutionFilter>
          <action>
            <ignore />
          </action>
        </pluginExecution>

        <pluginExecution>
          <pluginExecutionFilter>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <goals>
              <goal>list</goal>
            </goals>
            <versionRange>[0.0,)</versionRange>
          </pluginExecutionFilter>
          <action>
            <ignore /> 
          </action>
        </pluginExecution>

        <pluginExecution>
          <pluginExecutionFilter>
            <groupId>org.zeroturnaround</groupId>
            <artifactId>jrebel-maven-plugin</artifactId>
            <goals>
              <goal>generate</goal>
            </goals>
            <versionRange>[0.0,)</versionRange>
          </pluginExecutionFilter>
          <action>
            <ignore />
          </action>
        </pluginExecution>

        <pluginExecution>
          <pluginExecutionFilter>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <goals>
              <goal>compile</goal>
            </goals>
            <versionRange>[0.0,)</versionRange>
          </pluginExecutionFilter>
          <action>
            <ignore />
          </action>
        </pluginExecution>
        
        <pluginExecution>
          <pluginExecutionFilter>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <goals>
              <goal>run</goal>
            </goals>
            <versionRange>[0.0,)</versionRange>
          </pluginExecutionFilter>
          <action>
            <ignore />
          </action>
        </pluginExecution>  

        <pluginExecution>
          <pluginExecutionFilter>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <goals>
              <goal>copy-dependencies</goal>
              <goal>unpack</goal>
            </goals>
            <versionRange>[0.0,)</versionRange>
          </pluginExecutionFilter>
          <action>
            <ignore />
          </action>
        </pluginExecution>

      </pluginExecutions>

    </lifecycleMappingMetadata>


这是一个例子,使得eclipse忽略了这个报错。

问题原因:
基于maven的项目,使用各种maven plugin来完成开发中的各种工作,例如编译代码,打包,部署等等… 每个plugin包含许多的goal,用来做特定的事情。典型的基于java的maven项目就有 clean compile test package deploy等goal要执行。除了这些比较常见的goal之外,项目中还可以使用大量的第三方的plugin,甚至自己动手开发的plugin。

随之而来的问题是,在eclipse中编辑maven项目的时候,eclipse并不知道这些goal要做什么,通用的goal还好说,特殊用途的goal 就没有办法了。所以m2eclipse这个集成maven到eclipse的plugin就提供了开发extra的能力,eclipse利用这些 extra来完成本来在maven plugin要干的活。

如果eclipse没有办法知道某个goal要干什么,那么通常就会看到如下的错误信息:
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-dependency-plugin:2.6:copy  (execution: default, phase: validate)   由于我个人更倾向于在命令行下让maven干活,而eclipse更多的只是充当编辑器的角色,所以我要的只是让eclipse忽略掉这些goal就好了。




2.在Mac上安装maven,安装记录如下:
①下载maven,地址:http://maven.apache.org/download.cgi

下载后,解压到任意的目录下,这里我放到 maven/ 目录下,名字为apache-maven-3.3.3

②配置环境变量

使用命令,直接打开bash_profile: vi ~/.bash_profile ,添加以下几个变量

MAVEN_HOME=maven/apache-maven-3.3.3

PATH=$MAVEN_HOME/bin:$PATH

export MAVEN_HOME

export PATH

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

这里添加java路径是因为运行maven报错:Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0,      错误。

(报错原因是因为自带的java版本太低了,自己新装了一个)

tips:查看java路径的命令行:/usr/libexec/java_home

  得到的Java Home路径是:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

③使环境变量生效,使用命令“source .bash_profile”

④测试,在terminal窗口输入命令“mvn -version“,查看打印信息,如果显示正常的maven版本即安装成功



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值