linux安装maven
来源:互联网 发布:js ios 时间戳格式化 编辑:程序博客网 时间:2024/04/30 05:23
一.安装
1.1 官网下载地址:http://maven.apache.org/download.cgi,这里下载最新版apache-maven-3.3.9-bin.tar.gz
1.2 安装前需要安装JDK1.7或更新版本,这里已安装JDK1.8
[root@besttone-003-0001 ~]# java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
1.3 解压maven安装文件
[root@besttone-003-0001 apache-maven-3.3.9]# pwd/data/apache-maven-3.3.9[root@besttone-003-0001 apache-maven-3.3.9]# ll -htotal 44Kdrwxr-x--- 2 root root 4.0K Jul 20 15:10 bindrwxr-x--- 2 root root 4.0K Jul 20 14:31 bootdrwxr-xr-x 3 root root 4.0K Jul 24 17:01 confdrwxr-xr-x 3 root root 4.0K Jul 20 14:31 lib-rw-r--r-- 1 root root 19K Nov 11 2015 LICENSE-rw-r--r-- 1 root root 182 Nov 11 2015 NOTICE-rw-r--r-- 1 root root 2.5K Nov 11 2015 README.txt
1.4 配置环境变量,并使其生效
export M2_HOME=/data/apache-maven-3.3.9export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$SCALA_HOME/bin:$PATHexport MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
执行使其生效:source /etc/profile
1.5 查看安装情况
xiaoxiangdeMacBook-Pro:spring-context-support Simons$ mvn -vApache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)Maven home: /usr/local/maven/apache-maven-3.3.9Java version: 1.7.0_79, vendor: Oracle CorporationJava home: /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: "mac os x", version: "10.11.4", arch: "x86_64", family: "mac"
1.6 默认本地仓库~/.m2/repository
执行mvn -v命令后,就会生成默认本地仓库文件夹:~/.m2,在maven中(即目录/usr/local/maven/apache-maven-3.3.9/conf/settings.xml)如果不配置localRepository,就是用该仓库,常用jar包就在~/.m2/repository目录下
[root@besttone-003-0001 ~]# ll .m2total 4drwxr-x--- 54 root root 4096 Jul 21 06:01 repository
1.7使用方法,可以使用mvn -h查看
[root@besttone-003-0001 ~]# mvn -husage: mvn [options] [<goal(s)>] [<phase(s)>]Options: -am,--also-make If project list is specified, also build projects required by the list -amd,--also-make-dependents If project list is specified, also build projects that depend on projects on the list -B,--batch-mode Run in non-interactive (batch) mode -b,--builder <arg> The id of the build strategy to use. -C,--strict-checksums Fail the build if checksums don't match -c,--lax-checksums Warn if checksums don't match -cpu,--check-plugin-updates Ineffective, only kept for backward compatibility -D,--define <arg> Define a system property
1.8 手动安装jar包到本地仓库
如果本地仓库缺少某个jar包,可以使用mvn install手动安装jar到本地仓库,命令格式:
mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar
- 首选到http://mvnrepository.com/查找到需要的jar,如spring-context,搜索到后点击进入
找到需要的版本,进入仓库链接
下载jar到本地
- 执行安装命令:
mvn install:install-file -Dfile=/Users/Simons/Downloads/spring-context-support-3.1.0.RELEASE.jar -DgroupId=org.springframework -DartifactId=spring-context-support -Dversion=3.1.0.RELEASE -Dpackaging=jar
- 查看本地仓库,已经安装成功
xiaoxiangdeMacBook-Pro:~ Simons$ cd .m2/repository/org/springframework/spring-context-supportxiaoxiangdeMacBook-Pro:spring-context-support Simons$ ls3.1.0.RELEASE maven-metadata-local.xml4.2.6.RELEASExiaoxiangdeMacBook-Pro:spring-context-support Simons$
二.概念
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
2.1.生命周期(lifecycle)和阶段(phase)
Maven的生命周期是抽象的,其中的具体任务都交由插件来完成,Maven定义了三套生命周期:clean、default、site,每个生命周期都包含了一些阶段(phase)。三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase。
2.1.1 clean生命周期
pre-clean:执行清理前的工作;clean:清理上一次构建生成的所有文件;post-clean:执行清理后的工作
2.1.2 default生命周期
最核心的,它包含了构建项目时真正需要执行的所有步骤
validateinitializegenerate-sourcesprocess-sourcesgenerate-resourcesprocess-resources :复制和处理资源文件到target目录,准备打包;compile :编译项目的源代码;process-classesgenerate-test-sourcesprocess-test-sourcesgenerate-test-resourcesprocess-test-resourcestest-compile :编译测试源代码;process-test-classestest :运行测试代码;prepare-packagepackage :打包成jar或者war或者其他格式的分发包;pre-integration-testintegration-testpost-integration-testverifyinstall :将打好的包安装到本地仓库,供其他项目使用;deploy :将打好的包安装到远程仓库,供其他项目使用;
2.1.3 site生命周期
pre-sitesite:生成项目的站点文档;post-sitesite-deploy:发布生成的站点文档
2.2插件(plugin),本地仓库中插件所在位置:
.m2/repository/org/apache/maven/plugins,可查看.
[root@besttone-003-0001 ~]# ll .m2/repository/org/apache/maven/pluginstotal 128drwxr-x--- 3 root root 4096 Jul 20 16:19 maven-antrun-plugindrwxr-x--- 3 root root 4096 Jul 20 16:20 maven-assembly-plugindrwxr-x--- 3 root root 4096 Jul 20 16:20 maven-clean-plugindrwxr-x--- 3 root root 4096 Jul 20 16:21 maven-compiler-plugindrwxr-x--- 4 root root 4096 Jul 20 16:21 maven-dependency-plugindrwxr-x--- 3 root root 4096 Jul 20 16:20 maven-deploy-plugindrwxr-x--- 3 root root 4096 Jul 20 16:21 maven-docck-plugindrwxr-x--- 3 root root 4096 Jul 20 16:18 maven-enforcer-plugindrwxr-x--- 3 root root 4096 Jul 20 16:21 maven-failsafe-plugindrwxr-x--- 3 root root 4096 Jul 20 16:21 maven-gpg-plugindrwxr-x--- 3 root root 4096 Jul 24 18:15 maven-help-plugindrwxr-x--- 3 root root 4096 Jul 20 16:20 maven-install-plugindrwxr-x--- 3 root root 4096 Jul 20 16:21 maven-invoker-plugindrwxr-x--- 3 root root 4096 Jul 20 16:19 maven-jar-plugindrwxr-x--- 3 root root 4096 Jul 20 16:19 maven-javadoc-plugin-rw-r----- 1 root root 13135 Jul 24 18:14 maven-metadata-central.xml-rw-r----- 1 root root 40 Jul 24 18:14 maven-metadata-central.xml.sha1drwxr-x--- 3 root root 4096 Jul 20 16:21 maven-plugin-plugindrwxr-x--- 9 root root 4096 Jul 20 16:21 maven-pluginsdrwxr-x--- 3 root root 4096 Jul 20 16:22 maven-release-plugindrwxr-x--- 3 root root 4096 Jul 20 16:15 maven-remote-resources-plugindrwxr-x--- 3 root root 4096 Jul 20 16:22 maven-resources-plugindrwxr-x--- 3 root root 4096 Jul 20 16:22 maven-scm-plugindrwxr-x--- 3 root root 4096 Jul 20 16:22 maven-scm-publish-plugindrwxr-x--- 3 root root 4096 Jul 20 16:18 maven-shade-plugindrwxr-x--- 3 root root 4096 Jul 20 16:15 maven-site-plugindrwxr-x--- 3 root root 4096 Jul 20 16:18 maven-source-plugindrwxr-x--- 3 root root 4096 Jul 20 16:19 maven-surefire-plugin-rw-r----- 1 root root 186 Jul 24 18:14 resolver-status.properties
2.2.1 插件(plugin)和目标(goal)
速记符号:pluginId:goalId,
一对多关系,一个maven插件是由一个或者多个目标集合组成的,一个目标是一个明确的任务,它可以作为单独的目标运行,或者作为一个大的构建的一部分和其它目标一起运行。一个目标是Maven中的一个“工作单元(unit of work)”,例如编译源代码的source插件,有5个目标。
The Source Plugin has five goals:source:aggregate aggregrates sources for all modules in an aggregator project.source:jar is used to bundle the main sources of the project into a jar archive.source:test-jar on the other hand, is used to bundle the test sources of the project into a jar archive.source:jar-no-fork is similar to jar but does not fork the build lifecycle.source:test-jar-no-fork is similar to test-jar but does not fork the build lifecycle.
其中Maven已经对一些生命周期的阶段(phase)默认绑定了插件目标,如简写为package、install、deploy、test、compile
2.2.2 用户也可以根据需要将已存在的任何插件目标绑定到任何生命周期的阶段,举例:
指定在package阶段添加源代码打包的功能
<build> <plugins> <plugin> <!--指定源代码打包插件的坐标--> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.3</version> <!--定义插件执行在哪些阶段执行哪些目标--> <executions> <execution> <!---源代码打包插件在打包阶段执行--> <phase>package</phase> <!--源代码打包插件执行的目标,可以指定多个,只要插件支持--> <goals> <goal>jar</goal> <!--测试代码打包--> <!-- <goal>test-jar</goal> --> </goals> </execution> </executions> <!--输出路径和文件名进行设置 <configuration> <outputDirectory>/absolute/path/to/the/output/directory</outputDirectory> <finalName>filename-of-generated-jar-file</finalName> <attach>false</attach> </configuration> --> </plugin> </plugins> </build>
2.2.3自定义插件
2.2.4 插件仓库
跟其他构件一样,插件也是根据坐标存储在Maven仓库中。超级POM中Maven配置的默认插件远程仓库如下
<pluginRepositories> <pluginRepository> <id>central</id> <name>Central Repository</name> <url>http://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> <releases> <updatePolicy>never</updatePolicy> </releases> </pluginRepository></pluginRepositories>
参考资料:http://www.cnblogs.com/luotaoyeah/p/3819001.html“>Maven的生命周期和插件
- Linux下安装maven-------MAVEN
- Linux下安装maven
- Linux安装maven
- linux 安装maven
- Linux下安装maven
- Linux下安装maven
- Linux下安装Maven
- Linux下安装maven
- linux maven安装
- linux下安装maven
- 安装maven在linux
- Linux下安装maven
- Linux下安装maven
- linux 安装 maven
- linux下maven安装
- linux上安装maven
- Linux下安装maven
- Linux下安装maven
- poj 1062 昂贵的聘礼 (dijkstra)
- JS闭包的使用
- 后缀数组小结
- 经典报错bug
- 浅谈 android mvp 模式的使用
- linux安装maven
- 项目svn从一个地址换到了另一个地址, 现在需要把项目关联到另一个svn地址上
- c++函数返回引用
- poj2406Power Strings
- 编写ftp客户端连接linux自带ftp服务vsftpd中遇到的问题
- [Web基础笔记]html部分
- 杭电 hdu 2925 Musical Chairs 递推公式 和 容器
- ROS坐标系
- AdapterView子类 setSelected 状态选择器无效的原因