Maven项目构建工具使用

  1. 云栖社区>
  2. 博客>
  3. 正文

Maven项目构建工具使用

aaronlin 2017-06-12 21:32:34 浏览1642
展开阅读全文

(可知meven是我们开发过程中必不可少的一个构建工具,不过还是会有很多人不太了解如何使用,我是先接触的graidle构建工具的后来发现的其前生maven,用起来感觉差不多。)


1.检查%JAVA_HOME% 路径(毕竟maven本身就是java程序,需要JVM)


2.想要搭建maven环境自然少不了先下载maven必要文件:

http://maven.apache.org/download.cgi

(下载压缩包到电脑,现在一个无中文无空格的路径解压,后期避免不必要的麻烦,如:D:\maven\apache-maven-3.3.9)


3.配置maven相关环境变量:
MAVEN_HOME 或者 M2_HOME (建议选择后者,有利于向下兼容)  value: D:\maven\apache-maven-3.3.9

path  value: D:\maven\apache-maven-3.3.9\bin

验证:运行 mvn -v 查看当前maven版本



4.了解maven工程项目结构:

1)特定的目录结构
①根目录:工程名

②src目录 :源码

③pom.xml文件: Maven工程的核心配置文件

④main目录:存放主程序

⑤test目录:存放java源文件

⑦resources目录:存放框架或其他工具的配置文件

2)遵守约定目录

①maven要负责项目的自动化构建,必须知道java源文件保存在哪里。

②如果我们自己定义的东西想让框架工具知道的两种方式:

   Ⅰ>以配置的方式明确告诉框架:

     在pom.xml文件中声明 <param-value>classpath:spring-context.xml</param>

    Ⅱ>遵守框架内部已经存在的约定

3)配置优先级   约定>配置>编码


5.maven常用命令:(dos下运行)

①注意:执行与构建过程相关的macen命令,必须进入pom.xml所在的目录。(编译、打包、测试...)

②常用:

<1>mvn clean :清理

<2>mvn compile : 编译主程序

<3>mvn test-compile : 编译测试程序

<4>mvn test :执行测试

<5>mvn package : 打包


6.maven联网问题

(当maven执行命令需要用到插件使先回到本地仓库查找,没有了才会联网下载)

1)maven本地仓库默认位置:系统当前家目录/.m2/repository  (如:C:\Users\lin\.m2\repository)

2)可以修改默认仓库为自己准好的:

①找到maven解压目录\conf\settings.xml

②打开settings.xml文件找到localRepository标签(大约在53行)

③将<localRepository> </localRepository> 从注解中取出来

④修改标签体内容为自己准备好的仓库目录

(如:<localRepository>E:\maven\m2\po</localRepository> 具体情况自己定)


7.maven中的坐标
使用下面三个向量在仓库中定位一个maven工程

①groupid :公司名或组织名倒序+项目名 :(groupid >com.lin.applicationName</groupid >)

②artifactid: 模块名  <artifactid>View</artifactid>

③version: 版本号 <version>1.0.1</version>

④坐标与文件路径关系如:(可以通过 mvn install命令将自己的项目添加到本地仓库中)

  

8.当新建的项目不符合web项目结构(缺少webIF等目录)

HfgPeV8QAAAAASUVORK5CYII=

①在项目名上右键 点击properties

②选择Project Facets 

先将Dynamic Web Module 前面的 √ 号去掉点击apply,再把重新把Dynamic Web Module 勾上,这时底部出现Further configuration ......

wdrCHSSXOCrPgAAAABJRU5ErkJggg==选项,点进去,

wO9ioBM0kNGWgAAAABJRU5ErkJggg==

只需修改路径就行,Generate web.xml保持勾选状态 ,选择ok, apply,ok 就ok了。


9.当在项目中新建jsp文件时报错,、

方法一:右键项目,build path 将tomcat的运行时环境添加进来就行

方法二:在pom.xml中添加servlet_api的依赖(maven中的解决办法,推荐)

u9Y4P8B6Ff6QOsF2jUAAAAASUVORK5CYII=


10.依赖的范围

<scope>compile</scope>

<scope>test</scope>

<scope>provide</scope>

compile: 对主程序有效、对测试程序有效、参与打包(相应的jar包会被放到部署的目录下)

test: 对主程序无效、对测试程序有效、不参与打包 (例:junit4.jar)

provided: 对主程序有效、对测试程序有效、不参与打包、不参与部署(不在war包)(如:servlet-api.jar)

LEBDYzvRCy0TQAqHKkIfBsmVQUtICwasgFQFFQBFcJtHX5jLwORNgAmklYC1xOdxhsWScmdk5pRV9E8b


11.若想要把自己的项目用依赖引用到新项目中,需要将原项目中pom.xml文件右键运行maven install

这样才会在本地仓库中有相关依赖的文件,否则虽然有引用新项目中代码也不报错,当执行maven命令时不通过。

(对于要进行打包的程序就必须对被依赖项目安装到本地仓库,平常开发过程中可以不安装)


12.依赖是有传递性的,当引入某个依赖是会自动加载其相关联的jar包,如何所含带的jar包不够稳定或者会照成jar包冲突,则需要对不需要的jar包进行排除:

通过<exclusions>标签消除:

<dependency>

..............

<exclusions>

<exclusion>

<groupId>.... </groupId>

<artifactId> ....</artifactId> //写如相应依赖文件的坐标就会自动消除

<exclusion>

</exclusions>

</dependency>


Rz4f2CDxCICEILxAAAAAElFTkSuQmCC

点击对应jar包右键,选择open POM 打开就可以得到对应的坐标值。


13.统一版本控制

自定义标签名为 : atguigu.spring.version的标签,在需要相同版本的依赖出直接在

<version>${标签名}</version> ,在修改版本是只需要修改自定义标签中的版本就可以了,是不是很方便啊?


+k0LfoWAhYCZy0CliJw1ha9lfEqi4D5y99SCqpsM

如:

DHq0OsW1zgAAAAAElFTkSuQmCC


(当然,这种自定义标签不只是用于同一管理版本,其他属性只要想用的都可以。)



14.由于maven远程仓库默认是在连接的国外的远程仓库,这样往往会让我们在构建项目的时候耗费的时间比较长,还有可能构建失败,这时候我们就该像到将maven的远程仓库改成国内的maven仓库:

找到maven安装目录下的 conf文件夹里的settings.xml文件,找到大约163行,找到:

<mirror>
      <id>maven.net.cn</id>
      <mirrorOf>central</mirrorOf>
      <name>central mirror in china</name>
      <url>http://maven.net.cn/content.groups/public</url>
    </mirror>

这是在注释内容中,需要将其移出到注释内容外面,我们可以将这改为:

<mirror>  
  <id>alimaven</id>  
  <name>aliyun maven</name>  
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
  <mirrorOf>central</mirrorOf>          
  </mirror>  



网友评论

登录后评论
0/500
评论
aaronlin
+ 关注