Maven环境配置及使用心得

来源:互联网 发布:windows激活状态不可用 编辑:程序博客网 时间:2024/04/29 08:18

进来接触了两个使用maven构建的项目,使用起来感觉不错。

maven主要就是用来管理jar,第一次配置稍微麻烦,之后如果项目jar更新,可以直接更新pom文件并更新jar。

介绍下maven的搭建过程,客户端:

maven环境快速搭建

   最近,开发中要用到maven,所以对maven进行了简单的学习。因为有个maven高手在身边,所以,很快就上手了,我这里算是自我总结吧。关于maven是什么东东,请参考其它文章。

----------------准备工作-------------

Jdk  1.5以上java开发环境。

Eclipse IDE 一个。

Maven 3.0.3下载地址: http://maven.apache.org/docs/3.0.3/release-notes.html

----//快速搭建步骤

 

第一步:配置maven环境

 

将下载文件解压,然后设置maven环境

如果你配置过jdk的话,这里对你应该不难。如我的maven环境为:F:\maven\apache-maven-3.0.3

我的电脑-----属性----高级-----环境变量-----环境变量-----新建

变量名:M2_HOME

变量值:F:\maven\apache-maven-3.0.3

找到path 

在环境变量值尾部加入:;%M2_HOME%\bin;---前面注意分号

当然,你也可以直接在path 路径下加入:;F:\maven\apache-maven-3.0.3\bin  只是上面的方式更优雅一点。

我新建立

打开命令提示符(开始---运行---cmd,检查我们的java环境和maven环境是否有误。

 

 

第二步:修改仓库位置

 

修改我们仓库地址,仓库用于存放我们项目所依赖的所有jar包。

我的仓库路径:F:\maven\repo----这个路径是我自己创建,你可以将路径创建在任何位置。

我们打开…\apache-maven-3.0.3\conf\目录下的setting.xml文件,设置成我们创建的仓库路径

下面我们用一个命令验证一下。打开命令提示符,输入:mvn help:system 

该命令会打印出所有的java系统属性和环境变量。这些信息对我们日常的编程工作很有帮且。

如果运行的过程中没有错误,打开我们仓库(F:\maven\repo)会发现里面多了一些文件。这些文件就是我们从maven的中央仓库下载到本地仓库的。

 

第三步:创建maven项目

创建一个我们自己的项目。

我们通过maven命令行方式创建一个项目

mvn archetype:create -DgroupId=com.chongshi.test -DartifactId=hello -DpackageName=com.chongshi.test -Dversion=1.0

 

因为是第一次构建项目,所有依赖的jar包都要从maven的中央仓库下载,所以需要时间等待。等以后我们的本地仓库中积累了我们常用的jar包后,我们的开发将变得非常规范和方便。^_^!!

 

借助下载jar包的时间,我们来了解一下pom.xml文件。

 

<projectxmlns="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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
<modelVersion>4.0.0</modelVersion>

    
<groupId>com.chongshi.test</groupId>
     
<artifactId>hello</artifactId>
     
<version>1.0</version>
  
<packaging>jar</packaging>

 
<name>hello</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>

Ø projectpom.xml文件中的顶层元素; 
Ø modelVersion
:指明POM使用的对象模型的版本。这个值很少改动。
Ø groupId
:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId 

Ø artifactId
指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式: <artifactId>- <version>. <extension>(如:myapp-1.0.jar) 

Ø version
:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。 

Ø name
:项目的显示名称,通常用于maven产生的文档中。 

Ø url
:指定项目站点,通常用于maven产生的文档中。 

Ø description
:描述此项目,通常用于maven产生的文档中。

 

对于一个项目中只有下面的一部分是是我们需要关注的:

<groupId>com.chongshi.test</groupId>

 <artifactId>hello</artifactId>

 <version>1.0</version>

 

第四步:编译项目代码

我们的项目已经创建完成。但我们点开目录发现,它并不是我们eclipse所需要的项目目录格式。我们需要把它构建成我们eclipse可以导入的项目。

在命令提示符下进入到我们的创建的项目目录(F:\maven\hello)下,执行:mvn clean compile

Clean 告诉maven清理输入出目录target/compile告诉maven编译项目主代码。

不要急,我们又需要一段时间来下载,相关jar包。^_^!第一次用maven要学会淡定。

 

项目是编译完了,但项目的目录结构还不是我们想要的eclipse的项目结构,是不能导入到eclipse中的。所以,还需要执行一个命令:mvn eclipse:eclipse

 

命令执行完成后就得我们需要的项目目录了。

 

第五步:导入eclipse工具

 

打开的我们的eclipse工具。

先配置maven仓库路径

Window----Perferences-----java-----Build Path-----Classpath Variables

New一个变量的类路径。

Name M2_REPO   注意这个名字必须要大写。

Path F:/maven/repo  点击“Folder…”找到有本地仓库的位置。

 

下面,可以导入我的hello项目了。Eclipse如何导入项目,我这里就不说了,如果你是个java开发人员的话。

 

第六步:包的更新与下载

 

打开项目发现我们junit 3.8.1的,有点老了。那我想换成4.7的,如何通过maven的方式更换呢。其实,很简单,打开我们项目下的的pom.xml文件。

……
<dependencies>
   
<dependency>
     
<groupId>junit</groupId>
     
<artifactId>junit</artifactId>
     
<version>4.8.1</version>
     
<scope>test</scope>
   
</dependency>
 
</dependencies>
……

更改变,junit的版本号,然后重新执行:mvn eclipse:eclipse  

Maven 中央仓库地址:http://search.maven.org

 

假如,我们想下载一个struts jar包。在搜索框内搜索strruts ,会要列出中央仓库中的所有struts版本。

列表的格式与我们pom.xml配置文件的格式是对应的。

 

 

 

 

我们在pom.xml中加入:

<groupId>stuts</groupId>

 <artifactId>struts-scription</artifactId>

 <version>1.0.1</version>

然后更新项目就可从中央仓库下载我们想要的任意jar包(必须是开源的包)

 

继续学习内容:

1. 如何创建一个web项目?

  如果想让maven应用到项目开发中,这个是必须的。

2. 如何使用jeety

maven提供的一个容器,类似于tomcat

3. 如何创建一个代理仓库?

http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository

真正的maven私服搭建器--Artifactory

一个团队要真正用好Mavenrepository私服是免不了的,否则team mate们多好奇的目光,都会全部消耗在漫长的jar下载中。

    以前介绍过一个搭建私服的简朴但很笨的办法--将雷锋同志下载好的.m2/repository目录整个上传到任意的Web服务器中。其实世上多的是专业的maven私服搭建器,见TheServiceSide的文章--Setting Up aMaven  Repository

    我用的是Artifactory,忽然间觉得,Java的服务应用啥时候终于变得这么好用了,什么都不用装,不用配,双击artifactory.bat,自己就会启动Jetty Web服务器,典型的拆箱即用。

    10分钟入门到开动

  • 双击artifactory.bat,启动默认配置的Artifactory服务。
  • http://localhost:8081/artifactory/,用admin/password登录进管理界面看看。
  • 修改自己项目的pom.xml,增加私服定义

    <repositories>
        
<repository>
            
<id>artifactory</id>
            
<name>your local artifactory</name>
            
<url>http://localhost:8081/artifactory/repo</url>
        </
repository>
    </
repositories>

    
<pluginRepositories>
        
<pluginRepository>
            
<id>artifactory</id>
            
<name>your local artifactory</name>
            
<url>http://localhost:8081/artifactory/plugins-releases</url>
            
<snapshots>
                
<enabled>false</enabled>
            </
snapshots>
        </
pluginRepository>
    </
pluginRepositories>

  • 正常运行项目的maven命令,向artifactory索求jar。如果artifactory已经下载了就会直接返回给你,还没有的 就会去那几个repo官方站下载。进入到artifactory的管理界面,不断刷新Browse the repository,会看到仓库不断丰富的情况。

另外,官网服务器上还没有的一些jar,也可以通过管理界面很方便的deployArtifactory中。

最后你团队里的artifactory服务器不能直接连外网,需要使用HTTP代理服务器的话,见http://www.jfrog.org/sites/artifactory/latest/configuration.html

建议那些愿意为开源作实事的站点,在带宽充裕的服务器上,用Artifactory搭一个jar仓库吧,SpringSide就可以直接连上去下载jar:)

 

  如果是团队开发,这个很有必要,我们不可能每次都到中央仓库拿包,那样很慢,如果开发人员A已经下了某包,开发人员B还要下;创建代理仓库,A第一次下的包会存入代理仓库中,B要用时直接从代理仓库取就行。

本文更新一个命令。

第一节中提示创建一个项目用archetype:create  create是个被废弃或不被推荐使用的插件,在以后创建项目中请尽量使用archetype:generate

创建一个项目,如下:

mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=hello 

-DpackageName=com.chongshi.test -Dversion=1.0

第一节抛出了三个问题,本文将解决前两个

1. 如何创建一个web项目

2. 如何使用jettey容器运行

如果对maven的基本配置不了解的,请先阅读第一篇文章:

http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html

-----//创建一个文本项目

 

1. 如何创建一个web项目。

其实非常简单,只是比普通项目多加一个参数DarchetypeArtifactId ,命令如下:

mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=mywebapps -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0 

定位到创建项目的目录下构建成eclipse项目:

 F:\mywebapp>mvn eclipse:eclipse 

 

通过maven构建后就是我们eclipse所需要的项目目录如下。

由于本文不是讲解struts2项目的创建与配置,所以就不写struts2的配置过程,但为了不影响后面内容的讲解,所以这里提供一个基于struts2web项目

例子介绍:http://www.mkyong.com/struts2/struts-2-hello-world-example/

项目源码下载:

http://www.mkyong.com/wp-content/uploads/2010/08/Struts2-Hello-World-Example.zip

我解压到了本地D盘根目录下,由于已经是maven 的项目格式了,所以不需要对该项目运行mvn  eclipse:eclipse命令进行构建。直接导入到eclipse工具中。项目目录结构如下:

 

 

----//如何使用Jetty容器

2. 如何使用jetty容器运行项目。

使用添加jetty 运行项目。

 Jettytomcat一样也属于web容器。Jettymaven中做为一个插件。我们要在pom.xml中添加jetty的插件,才能调用jetty

<project>…</project>标签之间,插入如下信息:

 

<build>
       
<finalName>Struts2Example</finalName>
       
<plugins>
           
<plugin>
               
<groupId>org.mortbay.jetty</groupId>
               
<artifactId>maven-jetty-plugin</artifactId>
               
<version>6.1.10</version>
               
<configuration>
                   
<scanIntervalSeconds>10</scanIntervalSeconds>
                   
<stopKey>foo</stopKey>
                   
<stopPort>9999</stopPort>
               
</configuration>
               
<executions>
                   
<execution>
                       
<id>start-jetty</id>
                       
<phase>pre-integration-test</phase>
                       
<goals>
                           
<goal>run</goal>
                       
</goals>
                       
<configuration>
                           
<scanIntervalSeconds>0</scanIntervalSeconds>
                           
<daemon>true</daemon>
                       
</configuration>
                   
</execution>
                   
<execution>
                       
<id>stop-jetty</id>
                       
<phase>post-integration-test</phase>
                       
<goals>
                           
<goal>stop</goal>
                       
</goals>
                   
</execution>
               
</executions>
           
</plugin>
       
</plugins>
   
</build>

 

在项目目录下执行mvn jetty:jetty   

 

D:\java\Administrator\workspace3\Struts2Example>mvn jetty:jetty

在慢长的等待插件下载过程中(公司网速不给力),我上了一次厕所、倒了一次水。在群里和朋友乱侃了一通。^­_^!!

等插件下载完成后就可以运行jetty了,运行命令:mvn jetty:run 

这时就可以在浏览器中访问我们的jsp页面了。

 

重启Jetty,按键盘ctrl+c  根据提示按 y


本地jar导入

 

Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven来远程下载 JAR 包的话,我宿舍的带宽是4兆的,
4
个人共用,有时候用 Maven来远程下载 JAR 包会显得很慢,一般我发现下载速度不明显的时候,我就 Ctrl + C来终止它的下载。
然后改用手动来下载,因为用迅雷一类的工具来下载会快很多。我机子上 Maven的本地仓库的很多 JAR 包我都是手动下载的。
手动下载的话就会带来一个问题,就是,怎么样手动将下载下来的 JAR包添加到 Maven 的本地仓库。关于这个,网上也有很多资料。
我说下我的做法。
首先,
推荐几个好的 Maven常用仓库网址:
http://mvnrepository.com/
http://search.maven.org/
http://repository.sonatype.org/content/groups/public/
http://people.apache.org/repo/m2-snapshot-repository/
http://people.apache.org/repo/m2-incubating-repository/

第一个是我最常用的,然后是第二个,然后是第三个,最后两个是 Apache的私有仓库,我还没用过,不过感觉应该还可以吧...
接下来,还是一贯的作风,使用截图通俗易懂的方式来解说:

如果你看过我的上一篇:Spring邮件服务之HtmlMaven + Spring SMTP Mail With Html 文章,里面需要用到一个
spring-context-support-3.1.0.RELEASE.jar
JAR包,我把它安装到本地仓库的时候把图截了下来,顺便写了这篇文章,
供有需要的网友参考。
首先,到 http://mvnrepository.com/ 这个网,在搜索栏中输入你要搜索的 JAR 包的关键字来搜索,下面直接贴图:

@1



@2



@3



spring-context-support-3.1.0.RELEASE.jar为例,在 @3图中已经给出这个 jar包的 groupIdartifactIdversion信息,
手动安装的时候这些信息不要改,否则 Maven项目移植的话,jar 包下载就会失败。顺便把这信息帖下面,方便对照:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>3.1.0.RELEASE</version>
</dependency>


Maven
安装 JAR 包的命令是:

mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar


例如:
我下载的这个 jar 包是放到了 D:\mvn 目录下(D:\mvn\spring-context-support-3.1.0.RELEASE.jar)
那么我在 cmd 中敲入的命令就应该是:

mvn install:install-file -Dfile=D:\mvn\spring-context-support-3.1.0.RELEASE.jar -DgroupId=org.springframework-DartifactId=spring-context-support -Dversion=3.1.0.RELEASE -Dpackaging=jar

回车,显示安装成功:

 

0 0
原创粉丝点击