Developing with Eclipse

From BaseX Documentation
Revision as of 17:23, 12 September 2011 by CG (talk | contribs) (→‎Check Out)
Jump to navigation Jump to search


  • BaseX is being developed with the Eclipse environment. Other IDEs are used as well in our community, but are not supported by our team.
  • The EGit plugin can be used to check out the latest sources from our repository within Eclipse.
  • For additional comfort and to work with packages other than the main project, the m2eclipse plugin is required, which adds Maven support to Eclipse.
  • Additional coding guidelines are defined via Checkstyle and can be integrated with the eclipse-cs plugin.

Check Out

To get some help on how to check out BaseX and its sub projects from GitHub (, please have a look at our GIT Tutorial.

The following packages are available:

  1. basex is the main project
  2. basex-api contains the BaseX APIs (REST, WebDAV, XQJ, XMLDB, and bindings in other languages)
  3. basex-examples demonstrates some use cases for BaseX
  4. basex-tests contains several coorectness and stress tests


  1. Press RunRun…
  2. Create a new "Java Application" launch configuration
  3. Select "basex" as "Project"
  4. Choose a "Main class" (e.g., org.basex.BaseXGUI for the graphical user interface)
  5. Launch the project via Run

Using Maven

If the standalone version of Maven is installed, you can run mvn compile in the project directory to compile BaseX.

Should you wish to create / package your own jars you can do so by running mvn package. By adding the flag -DskipTests=true you can skip running the JUnit-tests.

Type in java -cp target/classes/org.basex.BaseX to run BaseX.

You can launch the following classes, which are all placed in the org.basex main package:

standalone (embedded) mode
server instance, waiting for requests
client instance, interacting with the server
graphical user interface

Moreover, try -h to have a look at the available command-line options. For example, you can evaluate XQuery expressions or process database commands without entering the console.