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目錄創建安裝壓縮文件。