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

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

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

    高老莊

    八戒的夢想:農婦,山泉,有點田
    posts - 4, comments - 14, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    2010年1月25日

     Architexa的前身是relo,這個工具在分析開源項目的源碼時很好用,relo已經不再維護,變成了新的插件Architexa,其網址是http://www.architexa.com/,雖然說architexa東西不錯,可惜需要付費.另外他的注冊網站好像有問題,因此連評估也做不了,無奈之下,動了暴力破解的念頭.下面即是暴力破解的過程,需要的人可以參考下.
    1.architexa 通過eclipse的update manager 下載后,在eclipse_HOME/plugins會存在幾個jar和目錄,如下:


    1.architexa 沒有對編譯后的代碼混淆,先用java decompiler 反編譯出如下的類:
    • com.architexa.diagrams.RSECore 位于com.architexa.diagrams_1.2.2.201006051418.jar中.
    • com.architexa.rse.ConnectAccountDialog 位于com.architexa.intro_1.2.2.201006051418/ReloIntro.jar中
    2.修改RSECore類的方法:
     1 public static boolean validInstall()
     2 {
     3     if (!AccountStatusUtils.testAccountValid()) {
     4       String email = AccountSettings.getStoredAccountEmail();
     5       AccountSettings.getStoredAccountPassword();
     6       if ((email != null&& (email.length() > 0))
     7         AccountErrorMsgs.displayErr("Account Has Expired ");
     8       return false;
     9     }
    10     return true;
    11 }
    12
    中間的判斷可以完全拿掉,修改為如下即可:
    1 public static boolean validInstall()
    2 {
    3     return true;
    4 }

    3.修改ConnectAccountDialog類的代碼(反編譯后的代碼有點長,這里不列出了),最終改成如下即可:
    1 protected void okPressed_Internal() {
    2     this.emailEntered = this.emailField.getText();
    3     this.passwordEntered = this.passwordField.getText();
    4 
    5     AccountConnection ac = new AccountConnection();
    6     if (this.enableOnOK) ac.setMenuToDisable(!this.disableOnCancel);
    7     super.okPressed();
    8 }

    編譯后將上述兩個類放到對應的jar中,重啟eclipse.

    4.在architexa的認證對話框,輸入任意email和password,architexa 將重建索引.
    5.在某個java類的上下文菜單中,可以看到Open in Diagram 就可以生成類的布局圖,類圖和序列圖了.可以通過工具欄上的button來輸出圖形.

    下面貼幾個通過這個插件構成的圖,欣賞下





    posted @ 2010-06-15 17:34 高老莊 閱讀(3411) | 評論 (14)編輯 收藏

        hudson是開源社區用的較多的一個開源持續集成工具,因為其開源,使用方便,擴展性強,對既有構建系統耦合性低,受到了大家一致的好評.
        使用:
        1.下載 
            hudson的官方網站https://hudson.dev.java.net/下提供了下載
        2.安裝
            hudson以war包的方式提供,因此安裝方式極其簡單,直接放到服務器的相應目錄下,這里放到tomcat的webapp下,啟動后,訪問http://localhost:8088/hudson 可以進入hudson的控制臺頁面.
          
        4.組織待構建的項目
            這里我們創建一個最為簡單的任務.這個任務的目的是構建一個標準的java工程,將其中的源碼編譯,打包等.
            回顧下一般的、最為簡單的開發流程:開發人員開發代碼,然后利用諸如ant,mvn等負責構建系統,然后執行測試,最后發布到服務器上.通常,每個項目都會有一個完整的腳本來自動化的做這件事,如何驅動自動化腳本的執行(什么時間點,以什么頻率,管理構建結果),是hudson提供給我們的功能,hudson不關注特定一次構建的內部過程,這對hudson是透明的.目前,hudson通過插件的方式,提供了對基于ant 、mvn等常見構建工具的支持.本質上,hudson是一個任務管理和驅動執行工具,只不過,它驅動的軟件開發流程中的構建等過程.
            準備:解決我們特定一次構建中,做什么的問題.
            基于測試的目的,我們創建一個示例java工程,結構如下:
        
        此項目的采用ant,構建,ant腳本如下:
        
    <?xml version="1.0" encoding="UTF-8"?>
    <project basedir="." name="build.hudsondemo">
        
    <!-- ================================= 
              target: compile              
             ================================= 
    -->
        
    <target name="compile" depends="prepare" description="compile the project to the bin">
            
    <javac debug="true" destdir="${basedir}/bin">
                
    <src path="${basedir}/src" />
                
    <src path="${basedir}/test"  />
                
    <classpath>
                    
    <fileset dir="${basedir}/lib">
                        
    <include name="*.jar"/>    
                    
    </fileset>
                
    </classpath>
            
    </javac>
        
    </target>
        
        
    <!-- ================================= 
              target: jar              
             ================================= 
    -->
        
    <target name="jar" depends="compile" description="jar the project">
            
    <mkdir dir="${basedir}/target"/>
            
    <jar  destfile="${basedir}/target/hudsondemo_${common.version}.jar">
                
    <fileset dir="${basedir}/bin" />
            
    </jar>
        
    </target>
        
        
    <!-- ================================= 
              target: prepare              
             ================================= 
    -->
        
    <target name="prepare" depends="clean"  description="prepare the jar to the lib">
            
    <copy todir="${basedir}/lib">
                
    <fileset dir="${common.libs.dir}">
                    
    <include name="*.jar"/>
                
    </fileset>
            
    </copy>
        
    </target>
        
        
    <!-- ================================= 
                  target: prepare              
                 ================================= 
    -->
        
    <target name="clean">
            
    <delete dir="${basedir}/bin"></delete>
            
    <delete dir="${basedir}/lib"></delete>
            
            
    <mkdir dir="${basedir}/bin" />
            
    <mkdir dir="${basedir}/lib" />
        
    </target>
    </project>

        為了說明問題,我特意的設定兩個構建時參數:
        common.libs.dir 指出從什么位置獲取編譯項目所需要的jar
        common.version 指出構建的jar的版本號.

        5.配置hudson的通用配置
            根據使用插件的多少,通用配置數量同,對上述的示例項目,我們需要配置 ant 和jdk(可選,如果需要指定用特定的jdk構建系統的話).
            點擊hudson主頁面右上角的manger hudson,進入配置頁面,有多項配置可以處理,但是目前僅僅需要用到System configurate 功能.在System configurate頁面,可以如下的配置:

        
        貼此圖的目的是需要關注下home directory這個配置,默認是當前用戶目錄下的.hudson,可以更改,一般在環境變量中設定一個HUSDON_HOME即可,同時將原有目錄下文件copy到新目錄下,重啟hudson即可.也可以用其他的方式,比如設定容器參數等來指定.
        上述配置取默認既可.
        
        配置jdk:
        
        
        配置ant:
        
        
         
       6. 創建構建任務
            hudson能提供的功能都以任務存在.點擊右上角的new job,將構建一個新的任務:
        
        輸入任務名稱,并選擇第二項.

        配置任務:解決如何安排構建任務的執行的問題.
        首先,我們需要指定如何保留構建歷史,一種是基于時間的,保留多少天,一種是基于次數的,保留自當前開始多少次以內的.這里我們選擇保留最新3次構建.
        
        再次,我們需要指定利用什么版本ant執行構建,同時指定構建時參數.
        
        ant version 版本中,使用了在通用配置部分配置的ant.
        targets 中,指明了,每次構建時需要完成的target,可以指定多個target.
        build file 指明了,使用什么樣的ant完成實際的構建過程.
        properties 指明了ant腳本中的使用的運行時參數.這些參數可以使用變量替換,hudson 會解析出實際的值再傳給ant.

        這就是這個任務可以執行的最基本配置,保存,并點擊右上角的build new ,可以立即執行一個構建.構建結果如下:
        
        紅色表示失敗構建,如果失敗,可以在%HUDSON_HOME%\jobs\下查看對應任務構建的日志來排查問題.
        
        8. 兩個可能經常需要關注的配置.
        1.每個job的 workspace.
            
            如果不指定絕對路徑,配置的ant等腳本就是相對這個工作空間的.在上面的例子中工作空間的用處不大,但是在一些其他類型的構建,比如從svn中簽出代碼構建時,用處就體現出來了,另外,一些hudson的插件,所利用的文件(構建腳本生成,這些插件不會去關注文件產生,而是對這些文件做二次處理)都是放到工作空間的,工作空間相當與構建系統和hudson的一個交流中介.推薦是每個項目有自己獨立的工作空間.
        2.自動構建的頻率設定
        
        也就是什么時候觸發構建,三種方式:
            當別的項目構建完畢后發生構建
            利用cron表到式來指定頻率,對cron表達式不熟悉的話,可以參考quartz(hudson內部使用的調度框架)相關的文檔.
            檢測scm(svn、cvs等)的狀態,如果檢測到變化,自動發生構建.

        借助husdon,基本能做到無人值守構建和部署,不少插件可以利用,也可以開發自己的插件.上面的僅僅是一個例子而與,如果要應對實際工作中的問題,得好好研究才行.
        

    posted @ 2010-01-25 18:58 高老莊 閱讀(757) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 成人自慰女黄网站免费大全| 亚洲第一福利视频| 日韩在线观看免费完整版视频| 免费无遮挡无码视频网站| 亚洲暴爽av人人爽日日碰| 又粗又硬又大又爽免费视频播放| 日韩在线观看免费完整版视频| 亚洲国产精品无码成人片久久| 一级特黄aa毛片免费观看| youjizz亚洲| 免费国产在线观看老王影院| 最近2019中文免费字幕在线观看| 老色鬼久久亚洲AV综合| 久久免费高清视频| 亚洲最大中文字幕| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲另类图片另类电影| 性感美女视频免费网站午夜| 久久免费99精品国产自在现线| 亚洲国产精品一区二区久久| 在线jlzzjlzz免费播放| 国产成人无码免费网站| 亚洲自偷精品视频自拍| 国产又黄又爽又猛的免费视频播放 | 久久精品免费一区二区| 老司机亚洲精品影院在线观看| 亚洲综合亚洲综合网成人| 黄色视屏在线免费播放| 亚洲AV日韩AV永久无码久久| 1000部免费啪啪十八未年禁止观看| 亚洲欧洲日产韩国在线| 国产啪精品视频网免费| 又粗又长又爽又长黄免费视频 | 7777久久亚洲中文字幕蜜桃| 免费人成视频在线观看不卡| 成人人免费夜夜视频观看| 久久国产色AV免费观看| 免费a级毛片无码a∨免费软件| 免费国产黄网站在线看| 亚洲色大成WWW亚洲女子| 亚洲国产成人久久综合一区|