zoukankan      html  css  js  c++  java
  • Maven2 & Continuum 持续整合 (1)

    经过几天努力,终于将Maven2 & Continuum 持续整合环境搭建成功,记录在这里。

    本文搭建的环境目标如下:
    1. 搭建maven 环境,并配置好maven-proxy
    2. 搭建continuum环境

    整个环境包括服务器环境和开发人员环境:
    服务器:Redhat AS4 Update4
    开发环境:WindowsXP

    服务器上安装 maven, maven-proxy, subversion, continuumn
    开发环境上安装 eclipse, maven-eclipse-plugin, svn-eclipse-plugins

    先说maven的环境吧:
    服务器端的安装
    安装maven需要先装好JDK,我安装的是JDK 1.6,安装好后设置好 JAVA_HOME 和 CLASSPATH 环境变量。
    1. 下载 maven2 & maven-proxy
    (1) maven 下载
    下载地址:http://maven.apache.org/download.html
    下载最新的release版本 maven-2.0.6
    (2) maven-proxy下载
    下载地址:http://maven-proxy.codehaus.org/
    下载最新的release版本 maven-proxy 0.2

    2. 安装 maven & maven-proxy
    (1) mavne 安装
    # cd /opt
    # tar xvfz maven-2.0.6-bin.tar.gz
    # cd /usr/local
    # ln -s /opt/maven-2.0.6 maven

    在profile里配置环境变量
    MAVEN_HOEM=/usr/local/maven
    PATH=$PATH:MAVEN_HOME/bin
    export MAVEN_HOME PATH

    测试maven安装是否成功
    # mvn --version
    显示 Maven version: 2.0.6 表示安装成功。

    创建 /var/maven/repository目录,用于保存本地的库文件和插件文件
    # cd /var
    # mkdir maven
    # chmod 777 maven
    # cd maven
    # mkdir repository
    # chmod 777 repository

    修改全局 maven setting.xml
    修改 MAVEN_HOME/conf/seeting.xml

    将 localRepository 的路径指向 /var/maven
      <!-- localRepository
       | The path to the local repository maven will use to store artifacts.
       |
       | Default: ~/.m2/repository
      -->
      <localRepository>/var/maven/repository</localRepository>

    修改 mirrors,添加镜像服务器 maven-proxy
    假设镜像服务器 maven-proxy IP 192.168.1.10,域名 maven-proxy.gehouse.cn
    (如何配置域名,参考我的另一篇文章 RedHat AS4 Update4 DNS (bind 9) 配置 http://www.cnblogs.com/kylindai/archive/2007/04/16/716052.html)
      <mirrors>
        <!-- mirror
         | Specifies a repository mirror site to use instead of a given repository. The repository that
         | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
         | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
         |
         -->
        <mirror>
          <id>maven-proxy.gehouse.cn</id>
          <mirrorOf>*</mirrorOf>
          <name>maven-proxy on gehouse.cn</name>
          <url>http://maven-proxy.gehouse.cn:9999/repository</url>
        </mirror>
      </mirrors>


    (2) maven-proxy 的安装
    (在 maven-proxy.gehouse.cn 的机器上安装)
    # cd /opt
    # mkdir maven-proxy-0.2
    # cd /usr/local
    # ln -s /opt/maven-proxy-0.2 maven-proxy
    # cd maven-proxy
    # unzip maven-proxy-standalone-0.2.zip
    得到 maven-proxy-standalone-0.2-app.jar


    创建镜像服务器缓存maven库文件和maven插件的目录
     # cd /usr/local/maven-proxy
    # mkdir target
    # cd target
    # mkdir repo
    # mkdir repo-local

    编辑maven-proxy.properties配置文件
    # vi maven-proxy.properties

    ################ GLOBAL SETTINGS
    # This is where maven-proxy stores files it has downloaded
    repo.local.store=./target/repo

    #The port to listen on - not used if loaded as a webapp
    port=9999

    #This is the base area that all files are loaded from. While it is possible to leave this blank, this behaviour
    #is deprecated and will be disabled in version 2.0.  There are too many namespace conflicts caused by not using
    #a prefix.
    #The repository will be shown at http://localhost:9999/repository/
    #for the .war loaded into a webapp server, the default prefix is "repository" (edit the web.xml to change)
    # As maven doesn't like a trailing slash, this address shouldn't have one either.
    prefix=repository

    #This is the simple date format used to display the last modified date while browsing the repository.
    lastModifiedDateFormat=yyyy/MM/dd HH:mm:ss

    ################ SNAPSHOT HANDLING
    #If you want the proxy to look for newer snapshots, set to true
    snapshot.update=true

    ################ M2 METADATA HANDLING
    #If you want the proxy to prevent looking for newer metadata, set to false (default is true)
    #metadata.update=false

    ################ M2 POM HANDLING
    #If you want the proxy to look for newer POMs, set to true (default is false)
    pom.update=true

    ################ PROMOTION HANDLING
    # ***** NOT CURRENTLY IMPLEMENTED *****
    #Promotion describes the process by which new artifacts are loaded to global maven-proxy repository.  It
    # is designed to be used by "higher security installations" that do not want to acquire artifacts from
    # remote repositories without approval.
    #
    #If promotion handling is enabled, then the proxy will not download remote artifacts without permission
    # (local repositories with copy=false are considered to be local)
    #
    #Permission to download is granted via the Promotion menu which will be enabled
    #  when promotion handling is enabled.
    #
    #If promotion is false, artifacts are sourced from any repository as per normal.
    #
    #Promotion and snapshots:  If promotion is enabled, snapshots are not downloadable.  The concept of using
    # a snapshot in a production build (which is primarily what promotion is for) is counterintuitive.
    ##
    promotion=false

    ################ WEB INTERFACE
    # This defines the absolute URL the server should use to identify itself.
    # This can often be determined automatically, but we recommend you specify
    # it explicitly to prevent problems during startup.
    # The prefix will be added to this for the actual repository
    # i.e. proxy available at http://localhost:9999/, repository at http://localhost:9999/repository
    serverName=http://maven-proxy.gehouse.cn:9999

    #If true, the repository can be browsed
    browsable=true

    #If true, the repository can be searched
    searchable=true

    #Not currently implemented. Will allow webdav access to the repository at some point.
    webdav=true

    #Stylesheet - if configured, will override the default stylesheet shipped with maven-proxy - absolute URLs only
    #eg.  /maven-proxy/style.css, http://www.example.com/style.css
    stylesheet=/maven-proxy/style.css

    #bgColor / bgColorHighlight are replaced in the built in stylesheet to produce a simple color scheme.
    #If a stylesheet is set, these are not used.
    bgColor=#14B
    bgColorHighlight=#94B

    #rowColor / rowColorHighlight are replaced in the built in stylesheet to produce a simple color scheme.
    #If a stylesheet is set, these are not used.
    rowColor=#CCF
    rowColorHighlight=#DDF


    ################ PROXIES
    #This is just a hack, it should auto discover them
    #proxy.list=one,tow,three

    #Unauthenticated proxy
    proxy.one.host=proxy1.example.org
    proxy.one.port=3128

    #Authenticated proxy
    proxy.two.host=proxy2.example.org
    proxy.two.port=80
    proxy.two.username=username2
    proxy.two.password=password2

    #Authenticated proxy
    proxy.three.host=proxy3.example.net
    proxy.three.port=3129
    proxy.three.username=username3
    proxy.three.password=password3


    ################# REPOSITORIES
    #This is not just a hack, it specifies the order repositories should be checked
    #Note that the proxy adds a "/" which is why the urls aren't suffixed with a "/"
    #repo.list=local-repo,www-ibiblio-org,dist-codehaus-org,private-example-com
    repo.list=local-repo,repo1-maven-org,www-ibiblio-org,dist-codehaus-org

    #local-store
    # The local store represents a location that local jars you host can be located.
    # This could also be achieved by having a local http repository, but this is less cumbersome
    repo.local-repo.url=file:///./target/repo-local
    repo.local-repo.description=Super Secret Custom Repository
    #If copy is true, jars are copied from the store to the proxy-repo. Only configurable for file:/// repos
    repo.local-repo.copy=false
    #If hardfail is true, any unexpected errors from the repository will cause
    #the client download to fail (typically with a 500 error)
    repo.local-repo.hardfail=true
    #Don't cache a file repository
    repo.local-repo.cache.period=0

    #repo1.maven.org
    repo.repo1-maven-org.url=http://repo1.maven.org/maven2
    repo.repo1-maven-org.description=repo1.maven.org
    #repo.repo1-maven-org.proxy=one
    repo.repo1-maven-org.hardfail=false
    repo.repo1-maven-org.cache.period=360000
    repo.repo1-maven-org.cache.failures=true

    #www.ibiblio.org
    repo.www-ibiblio-org.url=http://www.ibiblio.org/maven
    repo.www-ibiblio-org.description=www.ibiblio.org
    #repo.www-ibiblio-org.proxy=one
    repo.www-ibiblio-org.hardfail=true
    #Cache this repository for 1 hour
    repo.www-ibiblio-org.cache.period=3600
    repo.www-ibiblio-org.cache.failures=true

    #dist.codehaus.org
    repo.dist-codehaus-org.url=http://dist.codehaus.org
    #repo.dist-codehaus-org.proxy=two
    repo.dist-codehaus-org.hardfail=false
    repo.dist-codehaus-org.cache.period=3600
    repo.dist-codehaus-org.cache.failures=true

    #private.example.com
    repo.private-example-com.url=http://private.example.com/internal
    repo.private-example-com.description=Commercial In Confidence Repository
    repo.private-example-com.username=username1
    repo.private-example-com.password=password1
    repo.private-example-com.proxy=three
    repo.private-example-com.cache.period=3600

    注意阅读这个配置文件,里面定义了 maven-proxy 服务器的端口,缓存库文件的路径,被镜像的服务器的列表等。

    编辑启动maven-proxy的脚本 startup.sh
    # vi startup.sh

    java -jar maven-proxy-standalone-0.2-app.jar maven-proxy.properties >/dev/null &

    # chmod +x startup.sh

    启动 maven-proxy.sh
    # ./startup.sh

    在开发环境里的浏览器地址栏输入 http://maven-proxy.gehouse.cn:9999/repository 可以看到这个 maven-proxy 的页面,说明安装成功。


  • 相关阅读:
    根据时间段查询数据并按照降序排列
    Json数组(以[ ] 中括号开头)字符串转为json对象
    Java 后台请求第三方系统接口详解
    Map 集合 和 String 字符串相互转换工具类
    并发工具类——CountDownLatch、CyclicBarrier、Semaphore与Exchanger
    AQS相关
    Atomic原子类
    CAS相关
    synchronized关键字相关
    谈谈对volatile关键字的理解
  • 原文地址:https://www.cnblogs.com/kylindai/p/736454.html
Copyright © 2011-2022 走看看