Difference between revisions of "Developing with Eclipse"

From BaseX Documentation
Jump to navigation Jump to search
(Removed the eclipse marketplace image)
(44 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
This page is part of the [[Developer Section]]. It describes how to get the BaseX sources compiled and running on your system.
 +
 +
Another article in the documentation describes how to use BaseX as a [[Integrating Eclipse|query processor in Eclipse]].
 +
 
==Prerequisites==
 
==Prerequisites==
 
   
 
   
* BaseX is being developed with the [http://www.eclipse.org Eclipse] environment. Other IDEs are used as well in our community, but are not supported by our team.
+
BaseX is developed with the Eclipse environment (other IDEs like IntelliJ IDEA can be used as well). The [https://www.eclipse.org/downloads/ Eclipse IDE for Java Developers] includes the EGit plugin (for [[Git]]) and the m2e plugin (for [[Maven]]).
* The [http://www.eclipse.org/egit/ 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 [http://m2eclipse.sonatype.org m2eclipse] plugin is required, which adds [[Maven]] support to Eclipse.
+
Other Eclipse plugins we use are:
* Additional coding guidelines are defined via Checkstyle and can be integrated with the [http://eclipse-cs.sourceforge.net eclipse-cs] plugin.
+
 
 +
{| class="wikitable"
 +
|- valign="top"
 +
! Name
 +
! Description
 +
! Update URL
 +
! Eclipse Marketplace
 +
|-
 +
| [http://eclipse-cs.sourceforge.net eclipse-cs]
 +
| Enforces Checkstyle coding standards.
 +
| <code><nowiki>http://eclipse-cs.sf.net/update/</nowiki></code>
 +
| [http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=150 install]
 +
|-
 +
| [http://findbugs.sourceforge.net FindBugs]
 +
| Analyze project at byte code level
 +
| <code><nowiki>http://findbugs.cs.umd.edu/eclipse</nowiki></code>
 +
| [http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=1099 install]
 +
|-
 +
| [http://www.ucdetector.org/ UCDetector]
 +
| Unnecessary code detector
 +
| <code><nowiki>http://ucdetector.sourceforge.net/update</nowiki></code>
 +
| [http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=661 install]
 +
|-
 +
| [http://www.eclemma.org/ EclEmma]
 +
| Code coverage tool.
 +
| <code><nowiki>http://update.eclemma.org/</nowiki></code>
 +
| [http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=264 install]
 +
|}
  
 
==Check Out==
 
==Check Out==
 
   
 
   
To get some help on how to check out BaseX and its sub projects from GitHub (https://github.com/BaseXdb), please have a look at our [[GIT|GIT Tutorial]].
+
Our [[Git|Git Tutorial]] explains how BaseX can be checked out from the [https://github.com/BaseXdb/basex GitHub Repository] and embedded in Eclipse with EGit. The article also demonstrates how git can be used on command-line.
  
The following packages are available:
+
The basex repository contains the following sub-directories:
# [https://github.com/BaseXdb/basex basex] is the main project
+
# {{Code|basex-core}} is the main project
# [https://github.com/BaseXdb/basex-api basex-api] contains the BaseX APIs (JAX-RX, XQJ, XMLDB, and bindings in other languages)  
+
# {{Code|basex-api}} contains the BaseX APIs (XML:DB, bindings in other languages) and HTTP Services ([[REST]], [[RESTXQ]], [[WebDAV]])  
# [https://github.com/BaseXdb/basex-examples basex-examples] demonstrates some use cases for BaseX
+
# {{Code|basex-examples}} includes some examples code for BaseX
# [https://github.com/BaseXdb/jax-rx jax-rx] contains the JAX-RX Interface
+
# {{Code|basex-tests}} contains several unit and stress tests
  
==Start==
+
If the "Problems" View contains errors or warnings, you may need to switch to Java 7 (''Windows'' → ''Preferences'' → ''Installed JREs''). With the Maven plugin from Eclipse, it sometimes requires several attempts to get all dependencies updated. This loop can be avoided if the sources are precompiled via [[Maven]] on command-line.
#Press ''Run'' → ''Run&#8230;''
 
#Create a new "Java Application" launch configuration
 
#Select "basex" as "Project"
 
#Choose a "Main class" (e.g., <code>org.basex.BaseXGUI</code> for the graphical user interface)
 
#Launch the project via ''Run''
 
  
==Using Maven==
+
==Start in Eclipse==
+
# Press ''Run'' → ''Run&#8230;''
If the standalone version of [http://maven.apache.org Maven] is installed,
+
# Create a new "Java Application" launch configuration
you can run<code> mvn compile </code>in the project directory to compile BaseX.
+
# Select "basex" as "Project"
 +
# Choose a "Main class" (e.g., <code>org.basex.BaseXGUI</code> for the graphical user interface)
 +
# Launch the project via ''Run''
 +
 
 +
==Alternative==
  
Should you wish to create / package your own jars you can do so by running <code>mvn package</code>.
+
You may as well use the standalone version of [[Maven]] to compile and run the project, use other IDEs such as [http://www.jetbrains.com/idea IntelliJ IDEA].
By adding the flag <code>-DskipTests=true</code> you can skip running the JUnit-tests.
 
 
Type in<code> java -cp target/classes/org.basex.BaseX </code>to run BaseX.
 
 
You can launch the following classes, which are all placed in the
 
<code>org.basex</code> main package:
 
  
;[[Startup_Options#BaseX_Standalone|BaseX]]
 
: standalone (embedded) mode
 
;[[Startup_Options#BaseX_Server|BaseXServer]]
 
: server instance, waiting for requests
 
;[[Startup_Options#BaseX_Client|BaseXClient]]
 
: client instance, interacting with the server
 
;[[Startup_Options#BaseX_GUI|BaseXGUI]]
 
:graphical user interface
 
 
Moreover, try <code>-h</code> 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.
 
  
 
[[Category:Developer]]
 
[[Category:Developer]]

Revision as of 11:51, 29 February 2016

This page is part of the Developer Section. It describes how to get the BaseX sources compiled and running on your system.

Another article in the documentation describes how to use BaseX as a query processor in Eclipse.

Prerequisites

BaseX is developed with the Eclipse environment (other IDEs like IntelliJ IDEA can be used as well). The Eclipse IDE for Java Developers includes the EGit plugin (for Git) and the m2e plugin (for Maven).

Other Eclipse plugins we use are:

Name Description Update URL Eclipse Marketplace
eclipse-cs Enforces Checkstyle coding standards. http://eclipse-cs.sf.net/update/ install
FindBugs Analyze project at byte code level http://findbugs.cs.umd.edu/eclipse install
UCDetector Unnecessary code detector http://ucdetector.sourceforge.net/update install
EclEmma Code coverage tool. http://update.eclemma.org/ install

Check Out

Our Git Tutorial explains how BaseX can be checked out from the GitHub Repository and embedded in Eclipse with EGit. The article also demonstrates how git can be used on command-line.

The basex repository contains the following sub-directories:

  1. basex-core is the main project
  2. basex-api contains the BaseX APIs (XML:DB, bindings in other languages) and HTTP Services (REST, RESTXQ, WebDAV)
  3. basex-examples includes some examples code for BaseX
  4. basex-tests contains several unit and stress tests

If the "Problems" View contains errors or warnings, you may need to switch to Java 7 (WindowsPreferencesInstalled JREs). With the Maven plugin from Eclipse, it sometimes requires several attempts to get all dependencies updated. This loop can be avoided if the sources are precompiled via Maven on command-line.

Start in Eclipse

  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

Alternative

You may as well use the standalone version of Maven to compile and run the project, use other IDEs such as IntelliJ IDEA.