配置和使用Maven时遇到的疑难杂症(在myeclipse环境下)

来源:互联网 发布:淘宝加盟代理是真的吗 编辑:程序博客网 时间:2024/06/04 01:37

相信配置和使用过Maven的人都会遇到很多的问题,当然我也在刚开始接触Maven时,被它搞得头大,因此,借个机会,对遇到的问题做了一些小总结。

配置过程中

  • 在cmd输入mvn -v 查询version的时候出现了如下问题:
    ‘mvn-v’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
    解决方式:
变量名:M2_HOME变量值:E:\Maven\apache-maven-3.5.0(你自己的maven的安装目录)变量名:Path变量值:;%M2_HOME%\bin

使用过程中

  • 在创建工程时,会出现如下问题myeclipse加载缓慢并且有时候卡死:

这里写图片描述

解决方案:

这里写图片描述

  • 在创建工程时,出现“缺少maven-arcfitype-quickstart1.0.jar”的提示,其实主要问题可能是在于刚开始Maven工程的一些文件没有下载完全,其解决方式有两种:

解决方案一:
在CMD命令下,输入:

mvn install:install-file -Dfile=maven-arcfitype-quickstart1.0.jar -DgroupId=fbcds -DartifactId=maven-arcfitype-quickstart1.0.jar -Dversion=1.0 -Dpackaging=jar  

解决方案二:
在对应配置本地仓库的路径下,将所有的文件全部删除,然后重新启动myeclipse,让其重新加载内容,比如我的路径:
这里写图片描述

如何在当前工程下引入自己通过maven install打包到本地的jar包?

首先我们要理解一个内容,那就是scope,那什么是scope呢?其实它实质是一个管理依赖部署,在Maven中主要就是帮助当前项目管理依赖jar包,目前依赖项的作用域可以使用5个值:

在定义项目的依赖项的时候,我们可以通过scope来指定该依赖项的作用范围。scope的取值有compile、runtime、test、provided、system和import。

  • compile:这是依赖项的默认作用范围,即当没有指定依赖项的scope时默认使用compile。compile范围内的依赖项在所有情况下都是有效的,包括运行、测试和编译时。
  • runtime:表示该依赖项只有在运行时才是需要的,在编译的时候不需要。这种类型的依赖项将在运行和test的类路径下可以访问。
  • test:表示该依赖项只对测试时有用,包括测试代码的编译和运行,对于正常的项目运行是没有影响的。
  • provided:表示该依赖项将由JDK或者运行容器在运行时提供,也就是说由Maven提供的该依赖项我们只有在编译和测试时才会用到,而在运行时将由JDK或者运行容器提供。
  • system:当scope为system时,表示该依赖项是我们自己提供的,不需要Maven到仓库里面去找。指定scope为system需要与另一个属性元素systemPath一起使用,它表示该依赖项在当前系统的位置,使用的是绝对路径。
    • 解决方案一:将待引入的包放在目录下如lib目录下,修改pom文件,加入依赖并且scope要设置为system,比如:
<dependencies>      <dependency>          <groupId>com.Cecilia.vote</groupId>        <artifactId>voteSystemPlus</artifactId>        <version>0.0.1-SNAPSHOT</version>        <scope>system</scope>          <systemPath>${project.basedir}/lib/fbcds.jar</systemPath>      </dependency>  </dependencies>  
    • 解决方案二:将待引入的jar包安装到本地repository中,再对应在pom.xml中添加依赖,同上。

如何在Maven中打可执行的jar包?

解决方案一:直接在对应目录下打开CMD,输入:

maven install

解决方案二:使用maven plugin插件打包,具体操作见:http://blog.csdn.net/semial/article/details/75226448

原创粉丝点击