Changes

Jump to navigation Jump to search
774 bytes added ,  10:52, 29 July 2020
This page is part of the [[Developer Section]]. It demonstrates how [httphttps://maven.apache.org Maven] is used to compile and run BaseX, and embed it into other projects.
==Using Maven==
If you have [[Git|cloned our repositoriesrepository]] and installed Maven on your machine,
you can run the following commands from all local repository directories:
* <code>mvn compile</code>: the BaseX source files are compiled. To launch the project, type in <code>java -cp target/classes org.basex.BaseX</code>, or have a look at our [[Start Scripts]].* <code>mvn package</code>: JAR archives are created in the <code>{{Code|target</code> }} class directory, and all relevant libraries are created in the {{Code|lib}} directory. Packaging is useful if you want to use the start scripts.* <code>mvn install</code>: the JAR archive is installed to the local repository, and made available to other Maven projects. This is particularly useful if you are compiling a beta version of BaseX, for which no archives exist in the repositories.
By adding the flag <code>-DskipTests=true</code> you can skip running the JUnit tests and speed up the packaging procedure. You may as well use [[IntegrateDeveloping with Eclipse|Eclipse and m2eclipse]] to compile the BaseX sources. There are several alternatives for starting BaseX: * type in {{Code|java -cp target/classes org.basex.BaseX}} in the {{Code|basex-core}} directory to start BaseX on the command-line mode,* type in {{Code|mvn jetty:run}} in the {{Code|basex-api}} directory to start BaseX with Jetty and the HTTP servers,* run one of the [[Start Scripts]] contained in the {{Code|etc}} directory
==Artifacts==
You can easily embed BaseX into your own Maven projects by adding the following XML snippets to your {{MonoCode|pom.xml}} file:
<pre classsyntaxhighlight lang="brush:xml">&lt;<repositories&gt;> &lt;<repository&gt;> &lt;<id&gt;>basex&lt;</id&gt;> &lt;<name&gt;>BaseX Maven Repository&lt;</name&gt;> &lt;<url&gt;>http://files.basex.org/maven&lt;</url&gt;> &lt;</repository&gt;>&lt;</repositories&gt;></presyntaxhighlight>
===BaseX Main Package===
<pre class="brush:xml">&lt;dependency&gt;
&lt;groupId&gt;org.basex&lt;/groupId&gt;
&lt;artifactId&gt;basex&lt;/artifactId&gt;
&lt;version&gt;6.7.1&lt;/version&gt;
&lt;/dependency&gt;</pre>
<syntaxhighlight lang="xml"><dependency> <groupId>org.basex</groupId> <artifactId>basex</artifactId> <version>7.6</version></dependency></syntaxhighlight> ===BaseX APIsand Services===  <p>...including APIs and the [[REST]], [http://sourceforge.net/projects/xmldb-org XML:DB[RESTXQ]]and [http://jcp.org/en/jsr/detail?id=225 XQJ[WebDAV]] APIsservices:</p> <pre classsyntaxhighlight lang="brush:xml">&lt;<dependency&gt;> &lt;<groupId&gt;>org.basex&lt;</groupId&gt;> &lt;<artifactId&gt;>basex-api&lt;</artifactId&gt;> &lt;<version&gt;6.>7.1&lt;6</version&gt;>&lt;</dependency&gt;></presyntaxhighlight===XQJ API===
[[Category<p>The XQJ API is hosted at http:Developer]]//xqj.net:</p> <syntaxhighlight lang="xml"><repository> <id>xqj</id> <name>XQJ Maven Repository</name> <url>http://xqj.net/maven</url></repository>...<dependency> <groupId>net.xqj</groupId> <artifactId>basex-xqj</artifactId> <version>1.2.0</version></dependency><dependency> <groupId>com.xqj2</groupId> <artifactId>xqj2</artifactId> <version>0.1.0</version></dependency><dependency> <groupId>javax.xml.xquery</groupId> <artifactId>xqj-api</artifactId> <version>1.0</version></dependency></syntaxhighlight>
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu