<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    samtiger


    QQ:418148757
    Name:yangchuan
    數(shù)據(jù)加載中……
    CruiseControl+maven2+SVN+apache+ldap(或其它)
        在項目的開發(fā)中我常常喜歡用cc+maven+svn對自己的代碼進(jìn)行集成管理。有的時候,在搭建這個環(huán)境的時候,卻老是出一些這樣或那樣的毛病,所以今天在這里留下點痕跡,以便日后查閱:)
        環(huán)境及安裝配置:CruiseControl-2.5,maven-2.0.4,svn-1.4.0,apache2.0.54,ldap為windows2003下AD服務(wù)器。     
                      1:  CruiseControl-2.5 的安裝很容易直接next就可以了。
                      2:關(guān)于maven2.04的安裝,直接解壓到指定的目錄,但是這個地方需要配置它的環(huán)境變量,因為在安裝本地倉庫的時候,需要用到maven的相關(guān)命令。其環(huán)境變量的配置如下:
                       變量名 MAVEN_HOME; 變量值為maven的解壓路徑,在系統(tǒng)變量列表中找到系統(tǒng)變量path,在變量值后追加”;%MAVEN_HOME%\bin”。最后測試一下配置是否成功,可以在cmd下輸入mvn –v 如果正確則將提示Maven Version 2.0.4信息。
                     3:接下來先安裝apache,安裝過程中會提示填寫ServerName等,有的話就填,沒有的話就寫上IP,或是localhost. 安裝完apache,如果沒有出錯的話ApacheMonitor會出現(xiàn)在系統(tǒng)任務(wù)欄,并顯示已運行狀態(tài). 
                     4:安裝svn-1.4.0,安裝過程中svn會檢測到系統(tǒng)中已經(jīng)運行apache,apache會在期間自動重新啟動, ApacheMonitor的狀態(tài)欄也會自動改為"Apache/2.0.54(Win32) SVN/1.4.0 DAV/2",說明svn安裝成功.
                      備注:如果apache和svn沒有自動集成成功,也可以手動修改apache httpd.conf文件。具體說明將如下:

                   

    關(guān)于subversion與apache服務(wù)器配置問題
    版本:subversion 1。40
          apachae 2.054

    安裝好兩個程序后,在apache2的httpd.conf文件里加入如下語句(一定要注意順序):
    LoadModule dav_module modules/mod_dav.so
    LoadModule dav_fs_module modules/mod_dav_fs.so
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so

    將mod_dav_svn.so 和mod_authz_svn.so copy 到modules目錄內(nèi)
    這樣作好后,再創(chuàng)建SVN檔案庫
    新建目錄
    E:/sam/projects

    在CMD里輸入:
    svnadmin create E:/sam/projects/LDAPdms
    即創(chuàng)建了一個LDAP的檔案庫;
    然后在apache的httpd.conf配置文件里的最后加入
    <Location /dms>   
       DAV svn
       SVNPath E:\sam\projects\LdapDMS
    </Location>
    這樣即配置成功了APACHE+subversion的檔案庫
    可以通過http://localhost/dms訪問你的檔案庫了;
    2:怎么利用ldap (ad) + apache + subversion 進(jìn)行檔案庫的權(quán)限管理;
    AD配置
      域:ashan.local;
      組織單元: puyaodms
      用戶組: samSVNusers
      用戶: 楊川,userid:sam password:tiger
      該用戶屬于上邊的用戶組;
    將需要的DLL加入到apache里面的modules  文件夾下,在httpd.conf文件里加入
    LoadModule auth_ldap_module modules/mod_auth_ldap.dll
    模塊;
    然后在文件的最后加入:
    <Location /LDAPdms>
        ##常規(guī)Subversion配置
        DAV svn
        # SVNListParentPath on
        # SVNParentPath e:/SVNWork
       SVNPath E:\sam\projects\LdapDMS
       AuthType Basic
       AuthName "/SVNWork"
    # 以下為LDAP配置信息
     # LDAP 協(xié)議版本,AD提供的LDAP為3
     LDAP_Protocol_Version 3
     # LDAP 服務(wù)器
     LDAP_Server localhost
     # LDAP 服務(wù)器端口
     LDAP_Port 389
     # LDAP 基礎(chǔ)DN
     Base_DN "ou=puyaodms,dc=ashan,dc=local"
     # AD 的 LDAP 不允許進(jìn)行匿名查詢,因此需要提供一
     # 個 AD 中的用戶名及其密碼用于 Apache 的LDAP查詢
     Bind_DN "cn=administrator,cn=Users,dc=ashan,dc=local"
     Bind_Pass "tiger"
     # 供 Apache 查詢的 AD Object 的屬性
     UID_Attr "sAMAccountName"

     # 允許什么條件的 AD 用戶訪問 Subversion;
     # Require valid-group
     Require filter "(memberOf=CN=samSVNusers,ou=puyaodms,dc=ashan,dc=local)" 
    </Location>

    最后要發(fā)布項目到這個檔案庫,可以利用webtools的svn 發(fā)布過來,
    首先在以建好的項目的上邊右鍵,--team--share projects ;

    輸入:http://localhost:8888/LDAPdms

    next....

    svn配置好后,接下來,就是配置maven .
        m
    aven2的配置很簡單,主要是一個pom.xml文件,這個文件的配置如下:
        舉例說明:

    <?xml version="1.0" encoding="UTF-8"?>
    <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.0</modelVersion>
     <groupId>skmsys</groupId> //項目或者組織的唯一標(biāo)志,并且配置時生成的路徑也是由此生成,如org.sam.skmsys生成的相對路徑為:/org/sam/skmsys  
     <artifactId>skmsys</artifactId>//項目名稱
     <packaging>war</packaging> //打包的機制,如pom, jar, maven-plugin, ejb, war, ear, rar, par 
     <version>1.0-SNAPSHOT</version> //版本
     <build>
    //資源目錄 
      <sourceDirectory>src</sourceDirectory>
      <testSourceDirectory>test</testSourceDirectory>
      <resources>
       <resource>
        <directory>src</directory>
        <excludes>
         <exclude>**/*.java</exclude>
        </excludes>
       </resource>
      </resources>
      <testResources>
       <testResource>
        <directory>test</directory>
        <excludes>
         <exclude>**/*.java</exclude>
        </excludes>
       </testResource>
      </testResources>
      <plugins>
       <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
         <source>1.5</source>
         <target>1.5</target>
        </configuration>
       </plugin>
       <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.0</version>
        <configuration>
         <webResources>
          <resource>
           <directory>WebRoot</directory>
          </resource>
         </webResources>
        </configuration>
       </plugin>
      </plugins>
     </build>
    //下邊是項目中需要依賴的庫或包,這些包默認(rèn)存儲在X:\Documents and Settings\Administrator.LIPENG\.m2\repository(X是你操作系統(tǒng)所在盤符)下,
    //也就是maven2的本地倉庫。
    //maven將根據(jù)下邊的配置自動的在 http://repo1.maven.org/maven2上下載相應(yīng)的包,當(dāng)然我們也可以通過手動的形式把相應(yīng)的包更新到maven的本地倉
    //庫,主要是用 mvn install:install-file -DgroupId=javax.transaction -DartifactId=commons-dbcp -Dversion=1.2.2 -Dpackaging=jar -Dfile=D:\src\commons-dbcp-1.2.2
    //\commons-dbcp-1.2.2\commons-dbcp-1.2.2.jar
    //其中:DartifactId 為要加入的包,Dversion加入報的版本,Dpackaging=jar什么樣的包,Dfile具體的包
    //至于缺什么 樣的包,運行一次maven,察看包的錯誤就知道了
    <dependencies>
      <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.0</version>
       <scope>compile</scope>
       <optional>true</optional>
      </dependency>
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring</artifactId>
       <version>2.0</version>
      </dependency>
      <dependency>
       <groupId>commons-collections</groupId>
       <artifactId>commons-collections</artifactId>
       <version>2.1.1</version>
      </dependency>
      <dependency>
       <groupId>commons-httpclient</groupId>
       <artifactId>commons-httpclient</artifactId>
       <version>3.0.1</version>
      </dependency>
      <dependency>
       <groupId>commons-dbcp</groupId>
       <artifactId>commons-dbcp</artifactId>
       <version>1.2.2</version>
      </dependency>
      <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>5.0.5</version>
      </dependency>
      <dependency>
       <groupId>ant</groupId>
       <artifactId>ant</artifactId>
       <version>1.6.5</version>
      </dependency>
      <dependency>
       <groupId>opensymphony</groupId>
       <artifactId>xwork</artifactId>
       <version>2.0.0</version>
      </dependency>
      <dependency>
       <groupId>ognl</groupId>
       <artifactId>ognl</artifactId>
       <version>2.6.9</version>
      </dependency>
      <dependency>
       <groupId>tomcat</groupId>
       <artifactId>tomcat-http</artifactId>
       <version>5.5.9</version>
      </dependency>
      <dependency>
       <groupId>org.hibernate</groupId>
       <artifactId>hibernate</artifactId>
       <version>3.2.1.ga</version>
      </dependency>
     </dependencies>
    </project>
     最后講一下cruiseControl的配置:
    cc 
    的配置也很簡單 具體也是配置一個config.xml文件即可,同樣用寫一個簡單的例子
       
          <?xml version="1.0" ?>
    <cruisecontrol>
        // 創(chuàng)建CruiseControl的工作目錄,結(jié)構(gòu)如下: 
    /**
            E:/ccwork/logs,E:/ccwork/checkouts,E:/ccwork/artifacts     
            注:CruiseControl支持構(gòu)建多個項目,每個項目涉及:logs、checkout、artifacts。它們的作用分別是:記錄build結(jié)果、checkout代碼的工作目錄、部件發(fā)布地。這個結(jié)構(gòu)就是為了這三個目的而創(chuàng)建的,每一級下的project_name都是對應(yīng)的。
           如本例需要在checkouts創(chuàng)建一個skmsys文件夾,并把svn上相應(yīng)的代碼checkouts下來。以后cc就會自動地從這個地方update skmsys項目的代碼了
    **/
        <property name="cruisedir" value="E:/ccwork"/>
        <property name="logdir" value="${cruisedir}/logs"/>
        <property name="checkoutdir" value="${cruisedir}/checkouts"/>
        <property name="artifactdir" value="${cruisedir}/artifacts"/>

        <project name="skmsys">
         <labelincrementer/>
            <listeners>
                <currentbuildstatuslistener file="${logdir}/${project.name}/status.txt"/>
            </listeners>
            <bootstrappers>
                <svnbootstrapper localWorkingCopy="${checkoutdir}/${project.name}" />
            </bootstrappers>
            <modificationset quietperiod="30">
                <svn localWorkingCopy="${checkoutdir}/${project.name}"/>
            </modificationset>
            <schedule interval="60">
      <maven2 mvnscript="F:/Tools/server/maven/maven-2.0.4/bin/mvn.bat"
                        pomfile="${checkoutdir}/${project.name}/pom.xml" 
                        goal="clean test war:war"/>
            </schedule>
            <log dir="${logdir}/${project.name}">
                <merge dir="${checkoutdir}/${project.name}/target/surefire-reports"/>
            </log>
             <publishers>
                <onsuccess>
                    <artifactspublisher dest="${artifactdir}/${project.name}"
                                file="${checkoutdir}/${project.name}/target/skmsys-1.0-SNAPSHOT.war"/>
      
                </onsuccess>
            </publishers>
        </project>
      
    </cruisecontrol>

    //修改%CruiseControl_Home%/ webapps/cruisecontrol/WEB-INF/web.xml: 
    //查找:context-param logDir;修改它的值:…/ccworkplace/logs
    //查找:ArtifactServlet的init-param rootDir;修改它的值:…/ccworkplace/artifacts
    這樣就可以通過http://localhost:8080訪問你的項目管理信息了
            
                     

    posted on 2007-09-19 13:40 sam.chuan.yang 閱讀(2663) 評論(1)  編輯  收藏

    評論

    # re: CruiseControl+maven2+SVN+apache+ldap(或其它) 2007-09-28 16:32 千里冰封

    現(xiàn)在都流行用maven 了
      回復(fù)  更多評論    

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费看的黄色大片| 亚洲无码精品浪潮| 国产精品亚洲小说专区| 中文国产成人精品久久亚洲精品AⅤ无码精品| 日韩少妇内射免费播放| 亚洲VA成无码人在线观看天堂| 18成禁人视频免费网站| 亚洲国产成人无码AV在线| 337p日本欧洲亚洲大胆裸体艺术| 30岁的女人韩剧免费观看| 美女被免费网站在线视频免费 | 午夜亚洲WWW湿好爽| 国产亚洲精品美女久久久| 西西大胆无码视频免费| 国产免费播放一区二区| 亚洲精品综合在线影院| 国产亚洲精品成人AA片新蒲金 | 亚洲成?Ⅴ人在线观看无码| 91精品导航在线网址免费| 男男黄GAY片免费网站WWW| 亚洲专区在线视频| 亚洲AV永久无码精品一区二区国产 | 在线观看成人免费视频不卡| 四虎一区二区成人免费影院网址 | 国产亚洲精品AA片在线观看不加载| 91手机看片国产永久免费| 中文无码日韩欧免费视频| 亚洲Av无码国产一区二区| 亚洲免费视频网站| 亚洲乱码国产一区网址| 免费一本色道久久一区| 日本免费一区二区久久人人澡| 国产成人精品日本亚洲语音| 亚洲国产成人无码av在线播放| 国产成人高清亚洲一区久久 | 亚洲欧洲日本天天堂在线观看| 国产成人亚洲精品91专区手机| 免费无码一区二区三区蜜桃大| 亚欧色视频在线观看免费| 好吊色永久免费视频大全| 看Aⅴ免费毛片手机播放|