Difference between revisions of "Create your ADempiere development environment"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
(Preparing your Environment)
m (Intermediate save)
Line 1: Line 1:
 +
{{Breadcrumb|Table_of_Contents#Developer's_Guide|next=Software Testing and QA}}
 +
[[Category:Table of Contents]]
 +
[[Category:Developer documentation]]
 
==Preparing your Environment==
 
==Preparing your Environment==
  
Download and install
+
* Download and install the latest version of Java JDK from the [http://www.oracle.com/us/technologies/java/overview/index.html Oracle website]. You will need the latest version of the Standard Edition (SE) or Enterprise Edition (EE) Java Development Kit (JDK).  Follow the installation instructions and set the environment variable JAVA_HOME to point to the installed JDK and add %JAVA_HOME%\bin to your PATH environment variable.
* [http://java.sun.com/j2se/1.5.0/download-netbeans.html JAVA]
+
{{Note|You can have multiple JDK versions installed and change which one you use by changing where JAVA_HOME points.  Also, use the commands "which" on linus and "where" on dos to see where the called version is installed and "java -version" to check the version.}}
 +
* Download and install a database.  You can use PostgreSQL, Oracle or MySQL.  PostgreSQL is recommended.  Follow the installation instructions for the database chosen.
 +
{{Note|if you have access to a database server, you can use that rather than install a local copy of the database.}}
 +
* Download and install the latest version of the Eclipse Integrated Development Environment (IDE) for Java EE Developers from the [https://www.eclipse.org/ Eclipse web site].
  
'''You need JDK 1.5 or higher to work''' with adempiere source. You can define in file "eclipse.ini" on the Eclipse installation directory which jvm to use.
+
==Download the ADempiere Source==
* [http://www.eclipse.org/downloads/ Eclipse] (You need the Eclipse IDE for Java Developers. For example eclipse-java-ganymede-SR2-win32.zip for Windows or eclipse-java-ganymede-SR2-linux-gtk.tar.gz for Linux)
+
* [http://subclipse.tigris.org/install.html SubClipse (SVN)] or  [http://www.polarion.org/index.php?page=overview&project=subversive Subversive (SVN)]
+
Subclipse is an Eclipse add-on that enables you to access the Adempiere subversion repository (SVN) through eclipse.
+
  
Subclipse installation
+
* Download, install and configure your version control tools. See [[ADempiere Version Control]] for instructions. You may find tools that integrate with Eclipse directly but it is recommended to use the latest versions of Mercurial and Git. Once you have your pristine and working clones created, you can import the ADempiere project and other modules into your IDE as follows:
 
+
1.- Automatic subclipse installation
+
 
+
In Eclipse Menu->Help/Software Updates/Find&Install. Select Subclipse.
+
 
+
2.- Manual installation
+
 
+
If automatic subclipse installation fails:
+
download Subclipse installation file (e.g. site-1.2.0.zip). In Eclipse Menu->Help->Software Updates->Find&Install. Search for "New features to install", "New archived site".
+
Select downloaded file (e.g. site-1.2.0.zip). (The Subclipse plugin for Eclipse can be found on http://subclipse.tigris.org. As of 12/02/07 latest version is site-1.2.4.zip)
+
In the following dialog deactivate "Subclipse mylar integration".
+
 
+
Verification of correct Subclipse installation: Eclipse Menu ->Help->Software Updates->Manage Configuration.
+
If you expand eclipse, you will see for example Subclipse 1.2.0.
+
 
+
* [http://www.oracle.com/technology/software/products/database/xe/index.html Oracle10g XE] or [http://www.postgresql.org/download/ PostgreSQL]
+
 
+
These tools install differently depending on your Operating System.
+
When provided information on these websites does not suffice, try to find help on the forums of your Operating System or unofficial forums about these tools.
+
 
+
For Oracle installation in Linux: read and follow carefully each step described in http://www.puschitz.com/InstallingOracle10gOnSUSE.shtml.
+
 
+
==Download ADempiere sources==
+
 
+
1 Download ADempiere sources with Subclipse (for Linux and Windows)
+
 
+
First, you have to work in the "SVN Repository Exploring" perspective of Eclipse:
+
* Open Eclipse
+
* Eclipse menu->Window->Open Perspective->Other
+
* Then select SVN Repository Exploring
+
 
+
 
+
Create a new Repository Location within the "SVN Repository Exploring" :
+
* right mouse click on SVN Repository Exploring->New->Repository location
+
* Type in the location URL: https://adempiere.svn.sourceforge.net/svnroot/adempiere. The Adempiere SVN Repository tree will be created
+
* Open the Repository tree, select desired project and check it out using ''right click -> checkout...''
+
* Enter a new project name and click finish. If you enter an existing project name the existing project will be deleted before the files are checked out.
+
 
+
 
+
Updating with Subclipse
+
* In Eclipse, select the java perspective and "Package Explorer" view (''Eclipse menu -> Window -> View -> Package Explorer'')
+
* Select the Adempiere project
+
* ''Right click -> team -> update'' or ''right click -> team -> Synchronize with Repository''
+
 
+
 
+
2 Download ADempiere sources with Tortoise SVN (only for Windows)
+
* Download and Install Tortoise SVN (http://tortoisesvn.net/downloads). Tortoise SVN is integrated with Windows explorer.
+
* Create a directory e.g. C:\srcAdempiere\trunk
+
* Open windows explorer and navigate to e.g. C:\srcAdempiere\trunk
+
* Right click on trunk and choose "SVN checkout"
+
* Fill URL of repository with: https://adempiere.svn.sourceforge.net/svnroot/adempiere/trunk
+
* Click OK. It starts checking out the trunk immediately. If the connection broke in the middle of checkout, you just right-click on trunk and select "SVN update" option
+
 
+
 
+
Updating with Tortoise SVN
+
* Open a windows explorer and go to the project you want to update
+
* ''Right click -> Tortoise SVN -> update to revision''
+
* If you want to update to the newest version, just press OK. Otherwise, you can enter the version you wanto to update to
+
* You will find many convenient funtions with the Tortoise context menu - ''Right click ->Tortoise SVN''
+
 
+
 
+
 
+
3 Checking out
+
 
+
There are two options:
+
* Checking out Adempiere as a single project
+
* Checking out the individual projects of the trunk one at a time
+
 
+
Either alternative will work, but each has its advantages and disadvantages:  
+
* Checking out the projects individually allows you to close unecessary projects in Eclipse which reduces memory usage. Using multiple projects allows you to use project dependency.
+
* Checking out a single project is less time-consuming.
+
 
+
Choose whichever one you feel most comfortable with.
+
 
+
 
+
 
+
4 Creating the project "Adempiere" in Eclipse
+
  
 
* Open Eclipse, java perspective, package explorer view
 
* Open Eclipse, java perspective, package explorer view
 
* Eclipse menu->File->New->Project
 
* Eclipse menu->File->New->Project
 
* In the following dialog, select "Java Project" and "Next"
 
* In the following dialog, select "Java Project" and "Next"
* Type in "Adempiere" as the Project name
+
* Type in "ADempiere" as the Project name
 
* Check the radio button "Create project from existing source"
 
* Check the radio button "Create project from existing source"
* Click the "Browse" button and go to the directory which contains the project you want to include (the directory has a file named ".project" )
+
* Click the "Browse" button and go to the directory which contains the working repository of the project or module you want to include (the directory has a file named ".project" )
 
* Set the Build Path as specified in the next section
 
* Set the Build Path as specified in the next section
 
* Click "Finish"
 
* Click "Finish"
Line 99: Line 25:
 
==Compile ADempiere sources==
 
==Compile ADempiere sources==
  
You can use Eclipse to compile and build ADempiere.
+
Use Eclipse to compile, build and debug or run ADempiere as the client of as a web application.
  
1 Compiling ADempiere
+
Before you can run or debug the application, you have to:
 +
* ensure the application compiles properly;
 +
* perform a "build" of the application; and
 +
* import the seed data into the database
  
There are two directories for each compilable project (like base, dbport) in Adempiere trunk: a src directory and a build directory. They have the same structure within each project, differing only on the file suffixes: class for the build directory and java for the src directory.
+
=== Compiling ADempiere  ===
Compiling is the process of generating the .class files out of the .java files.  
+
 
 +
ADempiere is configured to use two directories for each project: a src directory and a build directory. They have the same structure within each project, differing only on the file suffixes: .class for the build directory and .java for the src directory. Compiling is the process of generating the .class files from of the .java files.  
  
 
There are two ways for compiling:
 
There are two ways for compiling:
 
* Automatically: by default, Eclipse builds (i.e. compiles) automatically when changes occur. Project > Build is checked by default after Eclipse installation.
 
* Automatically: by default, Eclipse builds (i.e. compiles) automatically when changes occur. Project > Build is checked by default after Eclipse installation.
* Manually: in desirable cases you may want to decide when to compile. Ensure Project > Build Automatically is not checked.  You have to remember to manually compile with Eclipse before running ADempiere.
+
* Manually: in desirable cases you may want to decide when to compile (for example, when debugging the ZK software). Ensure Project > Build Automatically is not checked.  You have to remember to manually compile with Eclipse before running ADempiere.
  
 +
=== Building ADempiere ===
  
2 Building ADempiere
+
Building is the process of archiving the class files into jar files and creating the installation files.
 
+
Is the process of archiving the class files into jar files and creating the installation files.
+
 
Do not get confused with usage of the term "build". For Eclipse it means compiling the java files, whereas for ADempiere it is building the jar files.
 
Do not get confused with usage of the term "build". For Eclipse it means compiling the java files, whereas for ADempiere it is building the jar files.
  
 
There are three ways for building:
 
There are three ways for building:
 
* Via console: open a console, change directory to /adempiere_trunk/utils_dev and run RUN_build.sh. This script performs a clean before building. You see the messages on the console.
 
* Via console: open a console, change directory to /adempiere_trunk/utils_dev and run RUN_build.sh. This script performs a clean before building. You see the messages on the console.
* With Eclipse I: in the navigator view, expand utils_dev and select the file RUN_build.sh. Run it either via context menu (Run as > Run) or main menu (Run > Run). You see the messages on the console window of Eclipse. It behaves like running it from console.
+
* Via Eclipse ANT: in the navigator view, expand utils_dev and select the file build.xml. Run it via context menu (Run as > ANT Build). It is faster because it performs a build without clean.
* With Eclipse II: in the navigator view, expand utils_dev and select the file build.xml. Run it via context menu (Run as > ANT Build). It is faster because it performs a build without clean.
+
{{Note|Build.xml draws information from the files build.properties and properties.xml.  You can also create a file mybuild.properties to override these as required.}}
 
+
  
 
3 Misc
 
3 Misc

Revision as of 15:44, 23 February 2014

Table_of_Contents#Developer's_Guide{{#if: | | [[{{{2}}}]] }}{{#if: | | [[{{{3}}}]] }}{{#if: | | [[{{{4}}}]] }}{{#if: | | [[{{{5}}}]] }} | Create your ADempiere development environment{{#if: Software Testing and QA| | Software Testing and QA }} ⇒

Preparing your Environment

  • Download and install the latest version of Java JDK from the Oracle website. You will need the latest version of the Standard Edition (SE) or Enterprise Edition (EE) Java Development Kit (JDK). Follow the installation instructions and set the environment variable JAVA_HOME to point to the installed JDK and add %JAVA_HOME%\bin to your PATH environment variable.
Note.gif Note:

You can have multiple JDK versions installed and change which one you use by changing where JAVA_HOME points. Also, use the commands "which" on linus and "where" on dos to see where the called version is installed and "java -version" to check the version.

  • Download and install a database. You can use PostgreSQL, Oracle or MySQL. PostgreSQL is recommended. Follow the installation instructions for the database chosen.
Note.gif Note:

if you have access to a database server, you can use that rather than install a local copy of the database.

  • Download and install the latest version of the Eclipse Integrated Development Environment (IDE) for Java EE Developers from the Eclipse web site.

Download the ADempiere Source

  • Download, install and configure your version control tools. See ADempiere Version Control for instructions. You may find tools that integrate with Eclipse directly but it is recommended to use the latest versions of Mercurial and Git. Once you have your pristine and working clones created, you can import the ADempiere project and other modules into your IDE as follows:
  • Open Eclipse, java perspective, package explorer view
  • Eclipse menu->File->New->Project
  • In the following dialog, select "Java Project" and "Next"
  • Type in "ADempiere" as the Project name
  • Check the radio button "Create project from existing source"
  • Click the "Browse" button and go to the directory which contains the working repository of the project or module you want to include (the directory has a file named ".project" )
  • Set the Build Path as specified in the next section
  • Click "Finish"

Compile ADempiere sources

Use Eclipse to compile, build and debug or run ADempiere as the client of as a web application.

Before you can run or debug the application, you have to:

  • ensure the application compiles properly;
  • perform a "build" of the application; and
  • import the seed data into the database

Compiling ADempiere

ADempiere is configured to use two directories for each project: a src directory and a build directory. They have the same structure within each project, differing only on the file suffixes: .class for the build directory and .java for the src directory. Compiling is the process of generating the .class files from of the .java files.

There are two ways for compiling:

  • Automatically: by default, Eclipse builds (i.e. compiles) automatically when changes occur. Project > Build is checked by default after Eclipse installation.
  • Manually: in desirable cases you may want to decide when to compile (for example, when debugging the ZK software). Ensure Project > Build Automatically is not checked. You have to remember to manually compile with Eclipse before running ADempiere.

Building ADempiere

Building is the process of archiving the class files into jar files and creating the installation files. Do not get confused with usage of the term "build". For Eclipse it means compiling the java files, whereas for ADempiere it is building the jar files.

There are three ways for building:

  • Via console: open a console, change directory to /adempiere_trunk/utils_dev and run RUN_build.sh. This script performs a clean before building. You see the messages on the console.
  • Via Eclipse ANT: in the navigator view, expand utils_dev and select the file build.xml. Run it via context menu (Run as > ANT Build). It is faster because it performs a build without clean.
Note.gif Note:

Build.xml draws information from the files build.properties and properties.xml. You can also create a file mybuild.properties to override these as required.

3 Misc

(You may ignore this step as ADempiere contains .xml files for eclipse to process compile already. We reserved this information for reference. If you have interest, please glance.)

Although sources don't compile right away, nothing is really wrong with it. All you need to do is checking the Java Build Path and libraries of each project that doesn't compile. It happens these paths need an update before eclipse manages to compile it all.

To make things easier, follow this list in same order. This way you respect the project dependencies.

  • Tools
  • Looks
  • dbPort
  • Print
  • Base
  • serverRoot
  • Interfaces
  • Extend
  • Client
  • serverApps
  • Install
  • sqlj
  • webstore
  • doc

How to define Java Build Path:

- Select the java perspective, Package Explorer view

- Click Adempiere

- Right mouse click -> Properties

- Select Java Build Path, tab "Order and Export"

- Check above entries and arrange them in the described order

If you run into problems, probably org.compiere.util.CPreparedStatement won't compile. Resolve that by making sure you compile on Java 5.0 SDK and run the build script in trunk/utils_dev/RUN_build.sh|bat. If it doesn't work the first time, run the trunk/utils_dev/RUN_clean.sh|bat and build again.

Running ADempiere Client

If developer is using multiple project Eclipse setup then in dbPort project there are two launch configurations crated for him. So he only need to start them!!

Running Adempiere through eclipse is simply a matter of creating a run configuration (Run -> Run... -> Java Application -> New) that points to the main method in dbPort/src/org.compiere/Adempiere.java.
(in eclipse3.3, Run -> Open Run Dialog...; under Java Application; if 'Adempiere' is not found, select 'New_configuration')

Fill the tabs with the following values as the minimum required values to have a new run configuration:
Tab 1:

  Name: adempiere_trunk (or whatever you wish)
  Project: adempiere_trunk (this has to be the name of the ADempiere project in Eclipse)
  Main class: org.compiere.Adempiere

Tab 2:

  VM Arguments: -Xms64m -Xmx64m (you may use less or more memory for ADempiere)

The VM Arguments define the minimum and maximum RAM allocation for Java VM. Ensure that you allocation enough RAM for ADempiere to run well in Eclipse. Similarly you can create a debug configuration to run Adempiere with hot code swapping to see your alterations as you work.

DB Setup

If you did not previously install Adempiere for end-users, you need a database. For its installation, follow the instructions in Getting Started.

Important: The database dump is found at data/seed/Adempiere[_pg].jar - simply unpack the file and import it into the db.

See also