1.更新Maven的本地库
<settings><localRepository>D:\software\yiibai.com\apache-maven\repositorylocalRepository>
2.手动发出Maven命令包括一个 jar 到 Maven 的本地资源库。
下载 “kaptcha”,将其解压缩并将 kaptcha-version.jar 复制到其他地方,比如:C盘。发出下面的命令:
mvn install:install-file -Dfile=c:\kaptcha-{version}.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion={version} -Dpackaging=jar
添加到本地资源库
D:\>mvn install:install-file -Dfile=c:\kaptcha-2.3.jar -DgroupId=com.google.code
-DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'install'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [install:install-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [install:install-file]
[INFO] Installing c:\kaptcha-2.3.jar to
D:\maven_repo\com\google\code\kaptcha\2.3\kaptcha-2.3.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Tue May 12 13:41:42 SGT 2014
[INFO] Final Memory: 3M/6M
现在,“kaptcha” jar被复制到 Maven 本地存储库。
安装完毕后,就在 pom.xml 中声明 kaptcha 的坐标。
<dependency>
<groupId>com.google.codegroupId>
<artifactId>kaptchaartifactId>
<version>2.3version>
dependency>
3. 从 Maven 模板创建一个项目
创建java项目(or webapp)
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart(or webapp) -DinteractiveMode=false
4.使maven生成的项目变成eclipse ide项目
进入maven项目目录
mvn eclipse:eclipse
导入项目到Eclipse IDE中,选择 “File -> Import… -> General->Existing Projects into Workspace”
5.更新pom.xml
默认的 pom.xml 太简单了,很多时候,你需要添加编译器插件来告诉 Maven 使用哪个 JDK 版本是用来编译项目
<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.0modelVersion>
<groupId>com.mkyonggroupId>
<artifactId>NumberGeneratorartifactId>
<packaging>jarpackaging>
<version>1.0-SNAPSHOTversion>
<name>NumberGeneratorname>
<url>http://maven.apache.orgurl>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.11version>
<scope>testscope>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>2.3.2version>
<configuration>
<source>1.6source>
<target>1.6target>
configuration>
plugin>
plugins>
build>
project>
6. Maven 打包
指定打包成什么包(jar or war)
<project ...>
<modelVersion>4.0.0modelVersion>
<groupId>com.yiibaigroupId>
<artifactId>NumberGeneratorartifactId>
<packaging>jarpackaging>
<version>1.0-SNAPSHOTversion>
打包命令
C:\worksp\NumberGenerator> mvn package
... ...
ha-2/classworlds-1.1-alpha-2.jar (37 KB at 20.2 KB/sec)
Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-io/2 .0.2/plexus-io-2.0.2.jar (57 KB at 28.1 KB/sec)
Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-inte rpolation/1.15/plexus-interpolation-1.15.jar (60 KB at 21.4 KB/sec)
Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-arch iver/2.1/plexus-archiver-2.1.jar (181 KB at 61.5 KB/sec)
Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-util s/3.0/plexus-utils-3.0.jar (221 KB at 60.3 KB/sec)
[INFO] Building jar: C:\worksp\NumberGenerator\target\NumberGenerator-1.0-SNAPSH
OT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:00 min
[INFO] Finished at: 2015-10-27T20:00:17+08:00
[INFO] Final Memory: 10M/54M
[INFO] ------------------------------------------------------------------------
7.从项目的 jar 文件运行应用程序示例
C:\worksp\NumberGenerator>java -cp target/NumberGenerator-1.0-SNAPSHOT.jar com.y
iibai.App
Unique ID : 94e5fd1a-c038-415f-a8ed-7fc58c397369
C:\worksp\NumberGenerator>
C:\worksp\NumberGenerator>java -cp target/NumberGenerator-1.0-SNAPSHOT.jar com.y
iibai.App
Unique ID : 48df568a-4b4b-4964-b767-664e206ca4b5
C:\worksp\NumberGenerator>java -cp target/NumberGenerator-1.0-SNAPSHOT.jar com.y
iibai.App
Unique ID : 4ac9156c-2e4a-45f4-8644-0707ae28d5a6
8.使用Maven清理项目
在基于Maven的项目中,很多缓存输出在“target”文件夹中。如果想建立项目部署,必须确保清理所有缓存的输出,从面能够随时获得最新的部署。
要清理项目缓存的输出,发出以下命令:
C:\worksp\yiibaiweb-core>mvn clean
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building yiibaiweb-core 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ yiibaiweb-core ---
[INFO] Deleting C:\worksp\yiibaiweb-core\target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.538 s
[INFO] Finished at: 2015-11-03T07:32:48+08:00
[INFO] Final Memory: 6M/77M
[INFO] ------------------------------------------------------------------------
当“mvn clean”执行,在“target”文件夹中的一切都将被删除。
要部署您的项目进行生产,它总是建议使用 “mvn clean package“, 以确保始终获得最新的部署。
8.将项目安装到Maven本地资源库
在Maven中,可以使用“mvn install”打包项目,并自动部署到本地资源库,让其他开发人员使用它。
mvn install 示例
一个Java项目,具有以下 pom.xml 文件
<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.0modelVersion>
<groupId>com.yiibai.coregroupId>
<artifactId>yiibai-coreartifactId>
<packaging>jarpackaging>
<version>99version>
<name>yiibai-corename>
<url>http://maven.apache.orgurl>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.4version>
<scope>testscope>
dependency>
dependencies>
project>
基于以上pom.xml文件,在“mvn install”被执行,它会打包项目为“yiibai-core-99.jar”文件,并复制到本地存储库。
这里建议使用运行“clean”和“install”在一起,让您能始终部署最新的项目到本地存储库。
mvn clean install
9.部署基于Maven的war文件到Tomcat
以Tomcat 7为例
1.1 Tomcat 认证
添加具有角色管理器GUI和管理脚本的用户。
%TOMCAT7_PATH%/conf/tomcat-users.xml
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="password" roles="manager-gui,manager-script" />
tomcat-users>
1.2 Maven 认证
添加在上面Maven 设置文件的 Tomcat 用户,是之后Maven使用此用户来登录Tomcat服务器。
%MAVEN_PATH%/conf/settings.xml
<settings ...>
<servers>
<server>
<id>TomcatServerid>
<username>adminusername>
<password>passwordpassword>
server>
servers>
settings>
1.3 Tomcat7 Maven 插件
声明一个Maven的Tomcat插件。
pom.xml
<plugin>
<groupId>org.apache.tomcat.mavengroupId>
<artifactId>tomcat7-maven-pluginartifactId>
<version>2.2version>
<configuration>
<url>http://localhost:8080/manager/texturl>
<server>TomcatServerserver>
<path>/yiibaiWebApppath>
configuration>
plugin>
怎么运行的?
在部署过程中,它告诉 Maven 通过部署 WAR 文件Tomcat服务器, “http://localhost:8080/manager/text” , 在路径“/yiibaiWebApp“上, 使用 “TomcatServer” (settings.xml) 用户名和密码来进行认证。
1.4 发布到Tomcat
以下的命令是用来操纵Tomcat WAR文件。
mvn tomcat7:deploy
mvn tomcat7:undeploy
mvn tomcat7:redeploy
示例
> mvn tomcat7:deploy
...
[INFO] Deploying war to http://localhost:8080/yiibaiWebApp
Uploading: http://localhost:8080/manager/text/deploy?path=%2FyiibaiWebApp&update=true
Uploaded: http://localhost:8080/manager/text/deploy?path=%2FyiibaiWebApp&update=true (13925 KB at 35250.9 KB/sec)
[INFO] tomcatManager status code:200, ReasonPhrase:OK
[INFO] OK - Deployed application at context path /yiibaiWebApp
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.507 s
[INFO] Finished at: 2015-08-05T11:35:25+08:00
[INFO] Final Memory: 28M/308M
[INFO] ------------------------------------------------------------------------