Maven的简单使用

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] ------------------------------------------------------------------------

你可能感兴趣的:(Maven)