项目管理工具---maven
来源:互联网 发布:银行证券软件下载 编辑:程序博客网 时间:2024/05/17 17:39
maven笔记
开发项目,需要下载各种各样的jar包,有用的,没用的,冲突的,项目还没有开始开发就臃肿的可以不要不要的.
项目管理工具,Maven,Ant,gradle…
bin:包含了mvn的运行脚本
boot:包含了一个类加载器的框架
配置环境变量
vim /etc/profile //配置环境变量#maven setexport M2_HOME=/home/juedaiyuer/apache-maven-3.3.9export M2=$M2_HOME/binexport PATH=$M2:$PATH保存source profile //不用重启mvn -versionApache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)Maven home: /home/juedaiyuer/apache-maven-3.3.9Java version: 1.8.0_65, vendor: Oracle CorporationJava home: /usr/jdk1.8.0_65/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: "linux", version: "3.19.0-56-generic", arch: "i386", family: "unix"
maven目录结构
src -main -java 主代码 -test -java 测试代码 -resources(资源文件)
第一次maven测试(without IDE)
//maven测试中用到mkdir -p src/main/java test/java/main/java/maven 目录 package maven.example01;public class HelloWorld{ public String sayHello() { return "Hello World!"; }}/test/java/maven package maven.example01;import org.junit.*;import org.Assert.*;public class HelloWorldTest{ @Test public void testHello() { Assert.assertEquals("Hello World!",new HelloWorld().sayHello()); }}
配置pom.xml
在struts文件的lib,struts2-core文件(jar),META-INF/maven/org.apache.struts/struts2-core/pom.xml复制过来
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>maven</groupId> <artifactId>maven-example01</artifactId> <version>0.0.1SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies></project>
调试
mvn -vmvn compile 项目编译mvn test 运行mvn package 打包mvn clean 删除targetmvn install 安装jar包到本地仓库
自动建立目录骨架
archetype插件用于创建符合maven规定的目录骨架
mvn archetype:generate 按照提示进行选择mvn archetype:generate -DgroupId yourgroup -DartifactId yourartifactId -Dversion yourversion -Dpackage yourpackge
坐标与仓库
pom.xml配置文档
本地仓库和远程仓库
超级pom:maven文件 lib/maven-model-builder-3.3.9.jar//org/apache/maven/model/pom.xml
https://repo.maven.apache.org/maven2 全球仓库的地址
镜像仓库
maven文件夹/conf/settings.xml
mirror标签
配置完后访问镜像仓库,原仓库不再访问
更改仓库位置
默认仓库下载地址: /home/juedaiyuer/.m2/repository
也可以设置仓库,放置在你的项目文件中,配置文件settings.xml
localRepository标签 修改仓库位置
坐标
<modelVersion> 指定了当前的pom的版本//坐标三标签<groupId> 反写的公司网址+项目名<artifactId> 项目名+模块名<version> 版本号 第一个数字:大版本号 第二个数字:分支版本号 第三个数字:小版本号
maven坐标格式:groupId:artifactId:packaging:version
包名应该与坐标相吻合
snapshot 快照
alpha 内部测试
beta 公测
Release 稳定
GA 正式发布
eclipse下maven的使用
查看IDE是否安装maven
window-preferences中查看是否有maven选项,如果有不用安装;
安装maven到IDE
将maven插件复制到eclipse/dropins
配置
maven的一些核心插件需要JDK
eclipse运行在JRE上,需要添加JDK
修改eclipse.ini文件
-vm
jdk文件路径(yourjdk/bin)/javaw.exe
修改eclipse默认的JRE
配置JRE,与JDK同用;
add只需要选择JDK所在目录即可
maven配置修改为本机的maven
生命周期和插件
完整的项目构建过程
清理-编译-测试-打包-集成测试-验证-部署
maven生命周期
clean 清理项目
default 构建项目
site 生成项目站点
pom.xml
坐标信息
标签
name 项目描述名url 项目的地址description 项目的描述developers 项目开发人员列表licenses 许可证信息organization 组织信息dependencies 依赖列表 dependency 依赖项 groupId artifactId version type scope optional 设置依赖是否可选 exclusions 排除依赖传递列表 exclusiondependencyManagement 依赖的管理(不会引入实际的以来当中,一般定义在父模块中,供子模块继承)build 构建行为提供支持 plugins 插件列表 plugin 插件 groupId artifactId versionparent modules 聚合多个maven项目 module
maven的依赖管理
<dependencies><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope></dependency></dependencies>
scope标签
compile 默认的范围,编译测试运行都有效provided 在编译和测试时有效runtime 在测试和运行时有效test 测试时有效system 与本机系统相关联,可移植性差import 导入的范围,它只使用在dependencyManagement中,表示从其它的pom中导入dependecy的配置
依赖的传递
依赖冲突
- 短路优先(优先解析路径短的)
先声明先优先(如果路径长度相同)
A->B->C->X(jar)
A->D->X(jar)优先解析路径短的
聚合和继承
使用maven构建web项目
new-maven-webapp
添加servlet依赖
source
- imooc 项目管理利器–maven
- mvnrepository
- JAVA 项目管理工具: Maven
- Maven项目管理工具
- Maven 项目管理工具
- Java 项目管理工具Maven
- 项目管理工具Maven
- 项目管理工具Maven(二)
- Maven(项目管理工具)
- Java项目管理工具-Maven
- 项目管理工具—Maven
- 项目管理工具maven
- 项目管理工具---maven
- 项目管理工具--Maven
- 项目管理工具-Maven
- 使用项目管理工具 Maven
- Maven—项目管理工具
- Maven项目管理工具
- 使用项目管理工具 `Maven`
- maven项目管理工具 总结
- 免证书真机调试
- HTML5 LocalStorage 本地存储
- Spark SQL性能优化
- JavaScript——3(事件处理与实用范例)
- android-async-http开源项目介绍及使用方法
- 项目管理工具---maven
- string类的常用的几个小东西find,substr
- 穿过已知点画平滑曲线(3次贝塞尔曲线)
- nutch源代码阅读心得
- 设计模式之观察者模式
- hdu 4496(并查集的边删除)
- Android通知代码
- Android Studio使用gradle打包指定包名和类的jar
- 使用WebRTC搭建前端视频聊天室——入门篇