對ADempiere源碼的一些理解

對ADempiere源碼的一些理解

1. ADempiere源碼使用ant處理,所以很多子目錄下都有一個build.xml文件。

2. 子目錄下RUN_build.bat或者RUN_build.sh類似的文件只是ant的快捷調用方式。進過測試:直接使用ant xxx也是OK的。

3. 所有的build.xml共享同一個配置文件utils_dev\build.properties,可以根據自己情況自定修改該文件調整。

複製代碼

 

env.ADEMPIERE_SOURCE=${adempiere.base}
env.ADEMPIERE_ROOT=${env.ADEMPIERE_SOURCE}/adempiere
env.ADEMPIERE_HOME=${env.ADEMPIERE_ROOT}/Adempiere
env.ADEMPIERE_INSTALL=${env.ADEMPIERE_SOURCE}/adempiere/install
env.ADEMPIERE_VERSION=ADempiere
env.ADEMPIERE_VERSION_FILE=360LTS
env.ADEMPIERE_VENDOR=ADempiere
env.ENCODING=UTF-8
env.XDOCLET_HOME=${env.ADEMPIERE_SOURCE}/tools
env.ADEMPIERE_ENV=Y

複製代碼

4. ant install完成以後生產的文件在ADEMPIERE_HOME目錄,壓縮檔在ADEMPIERE_INSTALL目錄(zip和tar.gz兩種格式)。這裏的安裝只是ADempiere將必要的一些文件複製到ADEMPIERE_HOME目錄,要能夠使用還需要執行RUN_setup.bat等一系列的動作。實質上就是生成安裝文件,同網絡上下載回來的一樣。

 

tools子項目

該子項目會生產幾個ADempiere共用的jar文件。

 

服務器jar文件:

複製代碼

/lib/jboss.jar (ADempiere習慣將多個jar文件打包成一個jar文件,下面縮進的內容表示該目的jar文件的內容來源)
    /jboss/client/jboss-ejb3x.jar
    /jboss/client/jboss-ejb3-client.jar
    /jboss/client/jbossall-client.jar

/lib/glassfish.jar
    /glassfishfacet/lib/*.jar
    /tools/lib/javaee.jar

複製代碼

 

數據庫jar文件:

/lib/oracle.jar
    /tools/lib/ojdbc6.jar
    
/lib/postgresql.jar
  /tools/lib/postgresql.jar

 

CSTools.jar,原文是Build Server Jar,我理解爲Compiere Server Tools,因爲ADempiere是基於Compiere,所以ADempiere裏面包含了很多Compiere的代碼:

複製代碼

/lib/CSTools.jar
    /tools/META-INF/services/**
    <!-- JSTL -->
    /tools/lib/jstl.jar
    /tools/lib/standard.jar
    <!-- ECS -->
    /tools/src/**/apache/ecs/**
    <!-- Installing Script Based in JSR 223 Scripting APIs -->
    /tools/lib/script-api.jar
    <!-- BeanShell -->
    /tools/lib/bsh-2.0b5.jar
    /tools/lib/bsh-engine.jar
    <!-- Groovy -->
    /tools/lib/groovy-all-1.5.1.jar
    /tools/lib/groovy-engine.jar
    <!-- Groovy -->
    /tools/lib/jython.jar
    /tools/lib/jython-engine.jar
    <!-- Payment Processors    -->
    /tools/lib/Verisign.jar
    /tools/lib/payflow.jar
    /tools/lib/miglayout-3.7.1-swing.jar
    /tools/lib/jpayment.jar
    <!-- Log4J, jnlp -->
    /tools/lib/commons-logging.jar
    /tools/lib/log4j.jar
    /tools/lib/jnlp.jar
    <!-- Barcode, ftp -->
    /tools/lib/barbecue-1.5-beta1.jar
    /tools/lib/commons-net-1.4.0.jar
    <!-- Adempiere look and feel -->
    /tools/lib/looks-2.0.4.jar
    <!-- PDF -->
    /tools/lib/jpedal.jar
    /tools/lib/iText-2.1.7.jar
    <!-- JFreeChart -->
    /tools/lib/jfreechart-1.0.13.jar
    /tools/lib/jcommon-1.0.16.jar
    <!-- JMS -->
    /tools/lib/activemq-core-5.0.0.jar
    <!-- C3P0 connection pool -->
    /tools/lib/c3p0-0.9.1.2.jar
    /tools/lib/c3p0-oracle-thin-extras-0.9.1.2.jar
    <!-- POI -->
    /tools/lib/poi-3.0.1-FINAL-20070705.jar
    <!-- CGLib -->
    /tools/lib/cglib.jar
    <!-- Commons -->
    /tools/lib/commons-collections-3.1.jar
    /tools/lib/commons-codec.jar
    <!-- jars for 2pack -->
    /tools/lib/ant.jar
    /tools/lib/xercesImpl.jar
    <!-- cron job -->
    /tools/lib/cron4j-2.2.1.jar            

複製代碼

 

CCTools.jar,也就是Compiere Client Tools:

複製代碼

/lib/CCTools.jar
    /lib/META-INF/services/**
    /lib/src/**/apache/ecs/**
    <!-- Mail -->
    /tools/lib/mail.jar
    <!-- Installing Script Based in JSR 223 Scripting APIs -->
    /tools/lib/script-api.jar
    <!-- BeanShell -->
    /tools/lib/bsh-2.0b5.jar
    /tools/lib/bsh-engine.jar
    <!-- Groovy -->
    /tools/lib/groovy-all-1.5.1.jar
    /tools/lib/groovy-engine.jar
    <!-- Groovy -->
    /tools/lib/jython.jar
    /tools/lib/jython-engine.jar
    <!-- Payment Processors -->
    /tools/lib/Verisign.jar
    /tools/lib/payflow.jar
    /tools/lib/miglayout-3.7.1-swing.jar
    /tools/lib/jpayment.jar
    <!-- Log4J, jnlp -->
    /tools/lib/commons-logging.jar
    /tools/lib/log4j.jar
    /tools/lib/jnlp.jar
    <!-- Barcode, ftp -->
    /tools/lib/barbecue-1.5-beta1.jar
    /tools/lib/commons-net-1.4.0.jar
    <!-- JFreeChart -->
    /tools/lib/jfreechart-1.0.13.jar
    /tools/lib/jcommon-1.0.16.jar
    <!-- Graph -->
    /tools/lib/jgraph.jar
    <!-- Adempeire Look and Feal -->
    /tools/lib/looks-2.0.4.jar
    <!-- jars for 2pack -->
    /tools/lib/ant.jar
    /tools/lib/xercesImpl.jar
    <!-- PDF -->
    /tools/lib/jpedal.jar
    /tools/lib/iText-2.1.7.jar
    /tools/lib/swingx-1.6.jar
    <!-- JMS -->
    /tools/lib/activemq-core-5.0.0.jar
    <!-- C3P0 connection pool -->
    /tools/lib/c3p0-0.9.1.2.jar
    /tools/lib/c3p0-oracle-thin-extras-0.9.1.2.jar
    <!-- POI -->
    /tools/lib/poi-3.0.1-FINAL-20070705.jar
    <!-- Commons -->
    /tools/lib/commons-collections-3.1.jar
    /tools/lib/commons-codec.jar

複製代碼

 

base子項目

該項目生成/base/Base.jar文件:

複製代碼

/base/Base.jar
    Sources:
        /base/src
        /glassfishfacet/src
        /jbossfacet/src
    ClassPath:
        /lib/CCTools.jar
        /lib/oracle.jar
        /lib/postgresql.jar
        /lib/jboss.jar
        /lib/glassfish.jar
        /tools/lib/junit.jar
        /tools/lib/j2ee.jar
        /tools/lib/jnlp.jar
        /tools/lib/servlet-api.jar
        /tools/lib/cron4j-2.2.1.jar

複製代碼

 

extend子項目

該項目生成/extend/Extend.jar文件:

複製代碼

/extend/Extend.jar
  Sources:
        /extend/src
  ClassPath:
        /lib/CCTools.jar
        /lib/jboss.jar
        /base/Base.jar
        /tools/lib/junit.jar 
        /tools/lib/testing/*.jar

複製代碼

 

client子項目

該項目生成/lib/Adempiere.jar文件。需要特別注意:Adempiere.jar文件額外還包含了另外三個項目的文件:base(/base/build),extend(/extend/build)和JasperReports(/JasperReports/CompiereJasper.jar)

複製代碼

/lib/Adempiere.jar (額外還包含base, extend和JasperReports三個項目的文)
     Sources:
        /client/src
    ClassPath:
        /lib/CCTools.jar
        /base/Base.jar
        /extend/Extend.jar
        /lib/customization.jar
        /lib/patches.jar
        /lib/jcommon-1.0.16.jar
        /lib/jfreechart-1.0.13.jar
        /tools/lib/j2ee.jar
        /tools/lib/swinglabs-0.8.0.jar      

複製代碼

 

JasperReports子項目

該項目生成兩個jar文件:/JasperReports/CompiereJasper.jar和/JasperReports/CompiereJasperReqs.jar,同時CompiereJasperReqs.jar被複制一份到/lib。

 

CompiereJasper.jar:

複製代碼

/JasperReports/CompiereJasper.jar
    Sources:
        /JasperReports/src
    ClassPath:
        /client/build
        /base/Base.jar
        /extend/Extend.jar
        /lib/CSTools.jar
        /lib/oracle.jar
        /JasperReportsTools/lib/jasperreports-3.7.3.jar
        /JasperReportsTools/lib/commons-digester-1.7.jar
        /JasperReportsTools/lib/commons-beanutils-1.7.jar 
        /tools/lib/commons-logging.jar
        /tools/lib/xercesImpl.jar
        /tools/lib/xml-apis.jar
        /tools/lib/postgresql.jar  
        /tools/lib/iText-2.1.7.jar
        /jboss/client/*.jar

複製代碼

 

CompiereJasperReqs.jar,該文件實質是JasperReports必需文件的一個重新打包:

複製代碼

/JasperReports/CompiereJasperReqs.jar
    /JasperReportsTools/lib/iReport.jar/it/businesslogic/ireport/barcode/*.class
    /JasperReportsTools/lib/iReport.jar/it/businesslogic/ireport/chart/*.class
    /JasperReportsTools/lib/iReport.jar/it/businesslogic/ireport/util/*.class
    /JasperReportsTools/lib/iReport.jar/it/businesslogic/ireport/*Element.class
    /JasperReportsTools/lib/iReport.jar/it/businesslogic/dtds/*
    /JasperReportsTools/lib/jasperreports-3.7.3.jar
    /JasperReportsTools/lib/commons-digester-1.7.jar
    /tools/lib/commons-logging.jar
    /JasperReportsTools/lib/commons-beanutils-1.7.jar
    /tools/lib/xercesImpl.jar
    /tools/lib/xml-apis.jar

複製代碼

 

serverRoot子項目

該項目生成三個文件:/lib/adempiereRootBase.war, /lib/adempiereRoot.jar和/lib/adempiereRoot.xml。 

複製代碼

/lib/adempiereRoot.jar
        /serverRoot/src/main
        /serverRoot/src/main/ejb/jboss.xml => META-INF/jboss.xml
        /serverRoot/src/main/ejb/sun-ejb-jar.xml => META-INF/sun-ejb-jar.xml      
    ClassPath:
        /lib/Adempiere.jar
        /lib/CSTools.jar
        /lib/oracle.jar
        /lib/jboss.jar
        /lib/postgresql.jar        
        /tools/lib/j2ee.jar
        /tools/lib/jnlp.jar
        /tools/lib/servlet-api.jar
        /tools/lib/mail.jar
        /tools/lib/bsh-1.3.0.jar
        /tools/lib/junit.jar
        /tools/lib/cron4j-2.2.1.jar
    
/lib/adempiereRootBase.war <= /serverRoot/src/web
    /serverRoot/src/web/WEB-INF/web.xml => WEB-INF/web.xml
    /serverRoot/src/web/WEB-INF/lib => WEB-INF/lib
    
/lib/adempiereRoot.xml <= /serverRoot/src/ear/application.xml

複製代碼

 

serverApps子項目

該項目生成三個文件:lib/adempiereApps.war, /lib/adempiereApps.jar和/lib/adempiereApps.xml。 

複製代碼

/lib/adempiereApps.jar
        /serverApps/src/main
    ClassPath:
        /lib/Adempiere.jar
        /lib/CSTools.jar
        /tools/lib/servlet-api.jar
        /tools/lib/jsp-api.jar
    
/lib/adempiereApps.war <= /serverApps/src/web
    /serverApps/src/web/WEB-INF/web.xml => WEB-INF/web.xml
    /serverApps/src/web/WEB-INF/lib => WEB-INF/lib
    
/lib/adempiereApps.xml <= /serverApps/src/ear/application.xml

複製代碼

 

webStore子項目

該項目生成兩個文件:/lib/adempiereWebStore.war和/lib/adempiereWebStore.xml。

/lib/adempiereWebStore.war <= /webStore/src/web
    
/lib/adempiereWebStore.xml <= /webStore/src/ear/application.xml

 

webCM子項目

該項目生成兩個文件:/lib/adempiereWebCMbase.war和/lib/adempiereWebCM.xml

複製代碼

/lib/adempiereWebCMbase.war <= /webCM/src/web
        /webCM/src/main
    ClassPath:
        /lib/Adempiere.jar
        /lib/CSTools.jar
        /tools/lib/javaee.jar

/lib/adempiereWebCM.xml <= /webCM/src/ear/application.xml

複製代碼

 

zkwebui子項目

該項目生成一個文件:/lib/webui.war。

複製代碼

/lib/webui.war <= /zkwebui/**
        /zkwebui/WEB-INF/src
    ClassPath:
        /base/build
        /client/build
        /JasperReports/build
        /lib/*.jar
        /tools/lib/servlet-api.jar
        /zkwebui/WEB-INF/lib/*.jar
        /zkwebui/WEB-INF/lib/classes   

複製代碼

 

install子項目

這裏的安裝指的是創建安裝文件,不是安裝到目標系統。

 

首先,它會創建/lib/CInstall.jar文件。

複製代碼

/lib/CInstall.jar
    Sources:
        /install/src
    ClassPath:
        /lib/CCTools.jar
        /lib/Adempiere.jar
        /lib/oracle.jar
        /lib/postgresql.jar
        /tools/lib/ant.jar
        /tools/lib/ant-launcher.jar   
    Includes:
        /tools/lib/ant.jar
        /tools/lib/ant-launcher.jar
        /tools/lib/ant-commons-net.jar
        /tools/lib/commons-net-1.4.0.jar

複製代碼

 

然後,將安裝程序需要的所有文件都放到ADEMPIERE_HOME目錄:

複製代碼

ADEMPIERE_HOME <= /install/Adempiere
    RUN_Adempiere.bat <= /utils/RUN_Adempiere.bat
    RUN_Adempiere.sh <= /utils/RUN_Adempiere.sh
    images <= /install/Adempiere/images
    packages
        liberoMFG/lib/liberoMFG.jar <= /packages/liberoMFG.jar
        liberoHR/lib/liberoHR.jar <= /packages/liberoHR.jar
    zkpackages
        liberoMFG/lib/liberozkMFG.jar <= /zkpackages/liberozkMFG.jar
    lib <= /lib
        CheckConflicts.sh <= /lib/CheckConflicts.sh
        Adempiere.ico <= /launch/Adempiere.ico
        Adempiere.ico <= /launch/Adempiere.ico
        Adempiere.exe <= /launch/Release/Adempiere.exe
        CInstall.jar <= /install/CInstall.jar
        sqlj.jar <= /sqlj/sqlj.jar
        CompiereJasperReqs.jar <= /JasperReports/CompiereJasperReqs.jar
        index.html
    utils <= /utils
        oracle
        postgresql
        oracleXE
    data
    jboss
    glassfish

複製代碼

 

最後,在ADEMPIERE_INSTALL目錄創建安裝壓縮文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章