zoukankan      html  css  js  c++  java
  • maven引用本地jar包

    教程:
    http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html

    安装

    1. 到下载maven: http://maven.apache.org/download.cgi

      $wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
      
    2. 解压,拷贝到某个目录下,建立软链接:

      $tar -xzvf apache-maven-3.2.5-bin.tar.gz
      $sudo cp apache-maven-3.2.5 /usr/local/ -rf
      $cd /usr/bin
      $sudo ln -s /usr/local/apache-maven-3.2.5/bin/mvn mvn
      
    3. 添加环境变量

      $sudo vim /etc/profile
      

      加入:

      export JAVA_HOME=/usr/local/java/
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      export PATH=$PATH:$JAVA_HOME/bin
      export MAVEN_HOME=/usr/local/apache-maven-3.2.5
      export PATH=${PATH}:${MAVEN_HOME}/bin
      

    执行命令,让/etc/profile马上生效

    $source /etc/profile
    
    1. 测试是否安装成功:

      $mvn -v
      Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-15T01:29:23+08:00)
      Maven home: /usr/local/apache-maven-3.2.5
      Java version: 1.6.0_32, vendor: Sun Microsystems Inc.
      Java home: /usr/lib/install/jdk-1.6.0_32/jre
      Default locale: en_US, platform encoding: UTF-8
      
      $java -version
      java version "1.6.0_32"
      Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
      OpenJDK (XXX) 64-Bit Server VM (build 20.0-b12-internal, mixed mode)
      

    使用maven

    1. 构建maven项目

      $mvn archetype:generate
      
      Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 554:回车
      Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 
      1: 1.0-alpha-1
      2: 1.0-alpha-2
      3: 1.0-alpha-3
      4: 1.0-alpha-4
      5: 1.0
      6: 1.1
      Choose a number: 6:回车(默认为6)
      
      Define value for property 'groupId': : test_groupid
      Define value for property 'artifactId': : test_artifactid
      Define value for property 'version':  1.0-SNAPSHOT: : 
      Define value for property 'package':  test_groupid: : 
      Confirm properties configuration:
      groupId: test_groupid
      artifactId: test_artifactid
      version: 1.0-SNAPSHOT
      package: test_groupid
      Y: : y
      

    此时已经构建成功

    $cd test_artifactid
    $ls
    pom.xml  src
    

    在src/main/java/目录下放java项目,在src/test/java/目录下放单元测试

    1. 几个常用命令:

      * mvn -h,不会用时,可寻求帮助
      * mvn clean compile,将.java类编译为.class文件
      * mvn clean test, 执行单元测试,会先运行编译
      * mvn clean package,进行打包,会先运行测试
      * mvn clean install –Dmaven.test.skip
      * mvn clean install,将某jar包安装到maven本地仓库中
      * mvn archetype:generate,快速的搭建项目骨架,输入一些groupId/artifactId/version等信息,由mvn插件自动生成一些必要的依赖和项目骨架
      
    2. 本地不常用jar包如何添加依赖关系:

      首先我们需要理解Maven仓库的两个概念:本地仓库远程仓库
      本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。

      比如我们把部分需要依赖的jar包放到项目的lib文件夹下,我们需要把依赖关系添加到pom.xml文件中。然而大部分jar包都是非正式的jar包,很难或不可能从远程仓库中下载下来。

      网上有几种比较常用的做法:

      • 直接安装到本地仓库中,然而,这种做法只会在你本地的机器上有效,其它机器仍需重复执行安装命令。

      • 通过添加system scope标签的方式,这种做法有时候会产生些问题,比如项目开发过程中会出现项目虽然打包成功,但是运行过程中会报包依赖错误。

      • 搭建本地的远程仓库。首先把依赖的jar包通过以下命令:groupId这类可以随意填,但是需要确保在远程仓库中不存在,并且最好做到唯一,否则会与其它依赖关系冲突。

        $mvn install:install-file -Dfile=lib/gson-2.2.4.jar -DgroupId=localgroupid -DartifactId=gson -Dversion=2.2.4 -Dpackaging=jar -DlocalRepositoryPath=repo -DcreateChecksum=true
        

      执行命令后,我们查看repo文件夹的树结构,这时的repo文件夹实际上相当于远程仓库:

      $tree -l
      .
      `-- localgroupid
          `-- gson
              |-- 2.2.4
              |   |-- gson-2.2.4.jar
              |   |-- gson-2.2.4.jar.md5
              |   |-- gson-2.2.4.jar.sha1
              |   |-- gson-2.2.4.pom
              |   |-- gson-2.2.4.pom.md5
              |   `-- gson-2.2.4.pom.sha1
              |-- maven-metadata-local.xml
              |-- maven-metadata-local.xml.md5
              `-- maven-metadata-local.xml.sha1
      

      此时,我们在pom.xml中需要添加的依赖关系如下:

      <dependency>
        <groupId>localgroupid</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.4</version>
      </dependency>
      

      此外,还需要在pom.xml中添加:

      <repositories>
        <repository>
          <id>project</id>
          <url>file://${project.basedir}/repo</url>
        </repository>
      </repositories>
      

      当我们把所有需要依赖的jar包等依赖关系注入到pom.xml后,我们可以编译、测试、打包项目。

      下载依赖关系的过程如下: 根据pom.xml中的依赖关系,首先去远程仓库查看是否有该依赖包,如果有直接下载。否则会从repo中查看是否有该依赖关系,如果有直接添加到本地仓库中,否则报错。 因此当我们把repo添加到项目中,在其它机器上就可以不用重复手动或跑命令的方式安装到本地仓库。

    在新建项目时怎么做?

    • 使用mvn构建命令构建maven固定格式的maven项目
    • 依赖本地jar包时,本地的jar包在添加时需要同时执行安装到repo文件夹下,通过设置groupId、artifactId、version、package来区别开不同的jar包以及版本号。
    • 把依赖关系添加到pom.xml中
    • 源代码、单元测试代码按照规范放到各自的文件夹下
  • 相关阅读:
    C++虚函数机制(转)
    C/C++中extern关键字详解(转)
    (转)Javascript定义类(class)的三种方法
    使用HtmlAgilityPack实现对网页内容的抓取
    (转)Lucene Document getBoost(float) 和 setBoost(float)
    (转)Ajax中Get请求与Post请求的区别
    (转)Lucene.net实现自定义排序
    Lucene.net基本功能核心代码
    (转)使用Lucene.Net实现全文检索
    C#将html table 导出成excel
  • 原文地址:https://www.cnblogs.com/yejinru/p/4506598.html
Copyright © 2011-2022 走看看