maven使用

简单说说maven,比如maven的常用命令,毕竟这是上次面试没回答上的问题(尴尬)。

mvn compile:,用于编译源代码,也可以调用 mvn clean compile,表示先运行清理之后运行编译,会将代码编译到target文件夹中。

调用mvn compile后在target下生成了一个文件夹:

只是生成的这俩lst文件,不清楚拿来做什么的。

调用mvn clean后,又清空了target文件夹下的内容。

mvn package用于打包,生成的jar包也在target目录下,但是调用没有生成,mvn clean package后成功:

maven install:在本地repository中安装jar包,

运行成功,提示在mavenResp下生成了相应jar包,

 由于没有写单元测试,mvn test就没用。(JUnit单元测试是下一个要讨论的问题)。

mvn dependency:sources 

下载相应jar包的源码,也可以在eclipse中,window->preference->maven->勾选download artifact sources,以及java doc

或者在pom.xml中,增加:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <version>2.9</version>
        <configuration>
          <downloadSources>true</downloadSources>
          <downloadJavadocs>true</downloadJavadocs>
        </configuration>
</plugin>

ps: 后两个方法没有实践过。

mvn compile与mvn install、mvn deploy的区别

  1. mvn compile,编译类文件
  2. mvn install,包含mvn compile,mvn package,然后上传到本地仓库
  3. mvn deploy,包含mvn install,然后,上传到私服

 显示版本信息 :

mvn -version/-v

 创建mvn项目:

mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app

PS:

  一般使用情况是这样,首先通过cvs或svn下载代码到本机,然后执行mvn eclipse:eclipse生成ecllipse项目文件,然后导入到eclipse就行了;修改代码后执行mvn compile或mvn test检验,也可以下载eclipse的maven插件。

说完了maven的常用命令,再倒过来说说maven的安装,下载一个maven的zip包,解压到:

在环境变量里设置maven的路径如上,mvn命令生效表示安装上。

 打开E:apache-maven-3.5.2conf下的setting.xml文件,修改如下两个配置:

localRepository表示本地仓库路径,怎么理解maven的仓库呢,我认为,就是传统的J2EE项目,jar包都是在随着工程一期的,在build path里配置,

同时保存在web_inf/lib下,需要引入什么jar包,得自己去下载然后倒入,但是maven把这些jar包给统一管理起来,服务端存着几乎所有的jar包,本地

需要的话,就在pom.xml中配置依赖,maven自动帮你下载到本地仓库中,然后所有项目共享jar包,不只是共享maven上下下来的jar包,也可以把自己

的工程编译成jar供其他应用调用,至于这个公共的服务端默认是外国的,mirror配置成了阿里云的镜像。如下是一个pom.xml的实例:

在说一下artifactId和groupId的命名,

前者就是(算了,百度下):

GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。

ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

还有就是:

比如我们需要用到一个jar包,比如spring的,但是又不知道他的artifactId和groupId,怎么办呢?

找个网站就好了。http://mvnrepository.com/

以下摘抄自:

https://blog.csdn.net/bloomzy/article/details/26002259

5个必须掌握的maven命令

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包的源码就都有了

--------2018.06.20更新--------

项目中新引入了一个jar包,而这个jar包在maven远程仓库里没有,于是我们在我们的工程里面新建一个mavenlib目录,将这个jar包拷进去,然后新建一个bat文件,内容如下:

::

set project_path=%~dp0

call mvn install:install-file -Dfile=%project_path%/mavenlib/ojdbc-7.jar -DgroupId=com.oracle -DartifactId=ojdbc -Dversion=7 -Dpackaging=jar
call mvn install:install-file -Dfile=%project_path%/mavenlib/jasperreports-6.1.2.jar -DgroupId=net.sf.jasperreports -DartifactId=jasperreports -Dversion=6.1.2 -Dpackaging=jar
call mvn install:install-file -Dfile=%project_path%/mavenlib/jasperreports-fonts-cupid-extension-4.0.2.jar -DgroupId=com.venustech -DartifactId=jasperreports-fonts-cupid-extension -Dversion=4.0.2 -Dpackaging=jar
call mvn install:install-file -Dfile=%project_path%/mavenlib/jradius-core-ca-1.1.5.jar -DgroupId=net.jradius -DartifactId=jradius-core-ca -Dversion=1.1.5 -Dpackaging=jar

pause

  即可将本地的jar包install到maven工程里去。

 此时仍然报错,选中项目,右键maven-->update project。(不明其意),即可。

原文地址:https://www.cnblogs.com/cherishBlueSky/p/9149118.html