一:下载安装maven
1.下载maven,apache-maven-3.2.2-bin.zip
http://maven.apache.org/download.cgi
2.新建环境变量-系统变量
变量名:MAVEN_HOME
变量值:D:\maven\apache-maven-3.1.1
3.系统变量Path增加maven的bin路径
在最末尾追加:;%MAVEN_HOME%\bin;
4.配置完毕后,在windows命令提示符下,输入mvn -v测试下,成功提示如图:
二、maven集成到eclipse
link 的方式来安装(转自:http://jingyan.baidu.com/article/60ccbceb01de4d64cbb19756.html)
我的这两个文件夹位于:D:/IDE/HELIOS/eclipse/(eclipse的安装根目录)
2. 下载eclipse-maven3-plugin.7z 解压缩到 plugins 目录下
3. 在 links 目录下创建一个 maven.txt(名字可以随便取),打开并输入:path=D:/IDE/HELIOS/eclipse/plugins/maven(请参照上面对应你的 maven 插件)
4. 保存关闭 maven.txt,并将后缀改成 maven.link,重启 eclipse(如果你的 eclipse 没有开着,直接打开就行)
2.eclipse工具:Help->Eclipse Marketplace搜索关键字maven到插件Maven Integration for Eclipse 并点击安装即可,重启eclipse
3.为了使得Eclipse中安装的Maven插件,同电脑本地中安装的那个相同,需要让eclipse中的maven重新定位一下,点击Window -> Preference -> Maven -> Installation -> Add进行设置
三、maven设置
1》打开maven本地安装包,conf文件夹-setting.xml,
localRepository指定maven下载的jar包放置路径,可自定义
<localRepository>D:\maven\.m2</localRepository>
2.设置maven镜像仓库地址
<mirrors></mirrors>标签里添加公库,例如:
<mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>Nexus osc</name>
<url>;
</mirror>
<mirror>
<id>nexus-osc-thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<name>Nexus osc thirdparty</name>
<url>;
</mirror>
2》eclipse引用maven配置
window-preferences-maven-user settings
配置优先级从高到低:pom.xml--->profiles.xml--->user settings --->global settings
User setting引用本地maven配置
四、创建maven项目
1、eclipse-New-other-Maven project,下一步,
archetype时:Artifact Id选择cocoon-22-archetype-webapp或者选择maven-archetype-quickstart,选择下一步,
3、输入Group Id,Artifact Id信息,Version默认为0.0.1-SNAPSHOT,Package会根据Group Id和Artifact Id自动生成
Group Id:项目所属的项目组(很多web项目会共用的一个项目组,比如com.landz)
Artifact Id:项目在项目组中的ID(即该项目名称,比如:mavenDemo)
Version:项目的版本号,后缀SNASHOT为快照的意思,表示版本不稳定
Package:自动生成,com.landz.mavenDemo
4、选中项目->Run As->Maven Test
注:第一次运行Maven可能会有更多额外的Maven插件下载信息
5、项目结构
|--src
|--main
|--java
|--resources
|--test
|--java
|--resources
|--target
|-pom.xml
SRC:源文件目录
TARGET:编译目录
pom.xml: Project Object Model项目对象模型,定义了项目的基本信息,用于描述项目如何构建,声明依赖等等。
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.siyuan</groupId>
<artifactId>firstmvn</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>firstmvn</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
重要的元素:
groupId,artifactId,version,packaging
这四个元素组成了Maven的坐标,它相当为项目在Maven世界中的ID。
其中packaging默认为jar,可以为jar,pom,war等。
dependencies
项目依赖,由1到N个dependency组成,每个dependency包含了一个坐标和依赖范围scope
其中scope默认为compile,表示该依赖对主代码和测试代码都有效,
test则表示该依赖只对测试有效,即测试代码中可以使用Junit-3.8.1.jar中的内容,主代码不能使用,
其余scope将在之后介绍。
landz-web项目包括若干子项目
landz-web中的pom.xml中
<modules>
<module>landz-web-model</module>
<module>landz-web-controller</module>
<module>landz-web-service</module>
<module>landz-web-mdao</module>
<module>landz-web-common</module>
</modules>
landz-web-service子项目
声明父项目
<parent>
<groupId>com.landz</groupId>
<artifactId>landz-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
添加依赖其他子项目包
<dependency>
<groupId>com.landz</groupId>
<artifactId>landz-web-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.landz</groupId>
<artifactId>landz-web-mdao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.landz</groupId>
<artifactId>landz-web-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
且父项目引入若干jar包后,子项目无需再次引入,可以共用
推荐一个添加依赖jar包的网站 http://mvnrepository.com/
推荐一个添加依赖jar包的网站 http://mvnrepository.com/
推荐一个添加依赖jar包的网站 http://mvnrepository.com/
这里面你可以搜索你想要的jar,并有相应的dependency的写法
比如:
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jcl -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.6.2</version>
</dependency>
6、如果你的jar包在中央仓库查不到,需要手动加载jar包到maven项目里,你可以使用以下方法:
打开cmd,输入例如以下的命令,其中DgroupId、DartifactId可以自定义,Dfile为jar包所在本地路径
mvn install:install-file -DgroupId=commons-cli -DartifactId=commons-cli -Dversion=1.2 -Dpackaging=jar -Dfile=F:/study/jars/jodconverter-2.2.2/lib/new/commons-cli-1.2.jar
7、dos窗口下打包maven项目,打开项目所在路径,输入命令
<span style="font-size:18px;">E:\workspace-2\landz_web>mvn package -Dmaven.test.skip=ture</span>
其中-Dmaven.test.skip=ture是不打包单元测试的Java文件(src/test/java)
五、部署web项目到linux服务器,相关命令(Xshell中执行linux命令)(Xftp执行文件上传下载与删除工作)
cd /opt/apache-tomcat-7.0.62-landz_web/
./bin/shutdown.sh & ----停tomcat服务
cd webapps/landz_web/
jar -xvf landz-web-controller-0.0.1-SNAPSHOT.war
cd ../..
./bin/startup.sh & --启动tomcat
tail -f logs/webapi.log --查看日志
远程仓库
<settings>
<mirrors>
<mirror>
<id>dotsrc.org</id>
<url>http://mirrors.dotsrc.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>ggi-project.org</id>
<url>http://ftp.ggi-project.org/pub/packages/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>sunsite.dk</id>
<url>http://mirrors.sunsite.dk/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>planetmirror.com</id>
<url>http://public.planetmirror.com/pub/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>lsu.edu</id>
<url>http://ibiblio.lsu.edu/main/pub/packages/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>ibiblio.net</id>
<url>http://www.ibiblio.net/pub/packages/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
注意:
引用jar包可以放在maven安装目录的setting.xml文件中;也可以把中央仓库配置地址放到pom.xml中:
pom根目录中添加:
<repositories>
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<layout>default</layout>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>wso2-maven2-repository</id>
<name>WSO2 Maven2 Repository</name>
<layout>default</layout>
<url>http://dist.wso2.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>