This article explains how you can make LuciadLightspeed available through Apache Maven. Maven is a development project management and build automation tool. More information is available on the Maven website: http://maven.apache.org/.
Deploying to a repository
Luciad provides Project Object Model (POM) files for all libraries available in LuciadLightspeed. You can find those POM files
in the build/maven/pom
directory.
To deploy them to your repository, run the script deploy.sh
or deploy.bat
in the build/maven
directory.
If you prefer to deploy private dependencies only, you can use the script deploy.private.sh
or deploy.private.bat
in the build/maven
directory.
Private dependencies are:
|
When you run these scripts, you must give the URL and credentials to your Maven repository. The script then deploys all libraries available in your release.
The deployment script requires at least Ant 1.10.14. Ant must have access to the Maven Ant tasks library. You can give Ant
access to that Maven Tasks library, either by storing it in Ant’s |
If you want support for protocols other than |
Using the Luciad libraries
You can use the Luciad libraries, like any other Maven dependency, by adding them to your project POM. We offer a number of convenience POM files that depend on all non-optional components in a LuciadLightspeed product tier: Essential, Advanced or Pro. If you have any optional components in your release, you must add POM dependencies for each of them. For more information about product tiers and their components, see LuciadLightspeed product tiers.
-
luciadlightspeed_essential
-
luciadlightspeed_advanced
-
luciadlightspeed_pro
Optional Component Name | POM Dependency Name |
---|---|
Aviation Standards |
luciadlightspeed_aviation_standards |
Database Connectors |
luciadlightspeed_database_connectors |
Defense Standards |
luciadlightspeed_defense_standards |
Defense Symbology |
luciadlightspeed_defense_symbology |
Google Earth Enterprise |
luciadlightspeed_google_earth_enterprise |
Graph and Routing Engine |
luciadlightspeed_graph_and_routing_engine |
Infrastructure Standards |
luciadlightspeed_infrastructure_standards |
Maritime Standards |
luciadlightspeed_maritime_standards |
OGC Server |
luciadlightspeed_ogc_server |
Radar Connectors |
luciadlightspeed_radar_connectors |
S-63 |
luciadlightspeed_s63 |
Terrain Analysis Engine |
luciadlightspeed_terrain_analysis_engine |
Weather & Environment Standards |
luciadlightspeed_weather_environment_standards |
You can put this information in your POM file to add a dependency for the LuciadLightspeed Pro tier:
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_pro</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
The example uses a placeholder for the LuciadLightspeed version. It’s recommended to define a Maven property for the LuciadLightspeed version as a value placeholder, to prevent an accidental mixing of versions. As a result, you only have to update the version number once, in the properties, when you upgrade to a new LuciadLightspeed version. |
Adding a license
LuciadLightspeed license files aren’t automatically uploaded to the repository. You can add license files manually by means
of Maven’s deploy-file
goal, as in the example below.
mvn deploy:deploy-file \
-DgroupId=com.yourcompany \ # Do not use com.luciad.
-DartifactId=luciadlightspeed_development_license \
-Dversion=2021.0-20210404 \ # For instance the date that the license was received.
-Dpackaging=jar \
-Dfile=development.jar \
-Durl=yourCompanyRepositoryUrl \
-DrepositoryId=yourCompanyRepositoryId \ # Server Id to map on the <id> under <server> section of
# settings.xml.
# This parameter will be required for
# authentication when using a remote repository.
# This parameter can be omitted when using a local repo.
If you have more than one application, and each application uses a different Luciad license, you must ensure that the |
If you are using a remote repository, you must authenticate the Here is an example server configuration in Program: Settings.xml configuration
|
Next, in your project’s pom.xml
, specify:
<dependency>
<groupId>com.yourcompany</groupId>
<artifactId>luciadlightspeed_deployment_license</artifactId>
<version>${luciad.license.version}</version>
</dependency>
Dependency Management
Luciad provides a Bill-of-Materials (BOM) POM file in order to help maintain consistency with dependency versions across your
projects.
The BOM POM file is a special type of POM file that only contains a dependencyManagement
section.
A BOM POM is used to control the versions of a project’s dependencies and provide a central place to define and update those
versions.
Including the LuciadLightspeed BOM POM file in the dependencyManagement
section of your project POM file
ensures you use the same versions of dependencies that LuciadLightspeed uses and was tested against.
This makes it easier to add new dependencies to your project without worrying about the version that you should depend on.
To include the BOM POM file in your project, add the following lines to the dependencyManagement
section of your project’s POM file:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed-bom</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Adding JavaFX dependencies
LuciadLightspeed has a compile time dependency on JavaFX. If your JDK does not include it, you must add JavaFX dependencies to your project.
In your project’s pom.xml
, specify:
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-base</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-swing</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>17</version>
</dependency>
Adding an execution plugin (optional)
If you want to run Lucy from the command line, you can add this plugin configuration to your project’s pom.xml
.
Once you configured this plugin, you can run the LucyMapCentric application using the command mvn compile exec:exec
.
Alternatively, you can execute any LuciadLightspeed sample by changing the mainClass
in this configuration to the main class of the sample you want to execute. For example, you can switch it to samples.gxy.decoder.MainPanel
to execute the GXY decoder sample.
For an explanation of the configured system properties, see the IDE integration article. |
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<longClasspath>true</longClasspath>
<arguments>
<argument>-Djava.net.useSystemProxies=true</argument>
<argument>-Dsun.awt.noerasebackground=true</argument>
<argument>-Dsun.java2d.opengl=false</argument>
<argument>-Dswing.aatext=true</argument>
<argument>-Dsun.java2d.d3d=false</argument>
<argument>-Djava.library.path=</argument>
<argument>-Xmx2g</argument>
<argument>-classpath</argument>
<classpath/>
<argument>samples.lucy.frontend.mapcentric.Main</argument>
</arguments>
</configuration>
</plugin>
Adding a ProGuard plugin for obfuscation
You can choose to obfuscate the class files of the LuciadLightspeed API when you deploy your application. You can achieve this by adding the following plugin configuration that will perform the obfuscation step.
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>${proguard.plugin.version}</version>
<executions>
<execution>
<id>proguard</id>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<proguardVersion>${proguard.base.version}</proguardVersion>
<proguardInclude>src/proguard/sampleproject.pro</proguardInclude>
<outjar>obfuscated/</outjar>
<libs>
<lib>${java.home}/jmods</lib>
<lib>${openjfx.home}/jmods</lib>
</libs>
<assembly>
<inclusions>
<inclusion>
<groupId>com.luciad</groupId>
<artifactId>*</artifactId>
<filter>!**.pom</filter>
</inclusion>
</inclusions>
</assembly>
</configuration>
<dependencies>
<dependency>
<groupId>com.guardsquare</groupId>
<artifactId>proguard-base</artifactId>
<version>${proguard.base.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.guardsquare</groupId>
<artifactId>proguard-core</artifactId>
<version>${proguard.core.version}</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
This configuration includes the ProGuard configuration file src/proguard/sampleproject.lightspeed.pro
from your Maven project root.
This file includes the ProGuard configuration files build/proguard/luciadlightspeed.pro
and build/proguard/lucy_end_user.pro
of your LuciadLightspeed release.
You can also add any custom ProGuard configuration to this file. You could exclude your own code from obfuscation, for example.
# Include Lightspeed ProGuard configuration
-include luciadlightspeed.pro
# Include Lucy ProGuard configuration
-include lucy_end_user.pro
# Include the samples ProGuard configuration if you intend to compile the samples
# -include samples.pro
# Keep your own code.
# -keep class com.example.** {
# public protected private *;
# }
Adding an Assembly plugin
To package your application in an easily distributable archive, you can add the following Assembly plugin to your project’s
pom.xml
.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<tarLongFileMode>posix</tarLongFileMode>
<descriptors>
<descriptor>src/assembly/lightspeed.app.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>package-deliverable</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
This configuration includes the descriptor src/assembly/lightspeed.app.xml
from your Maven project root.
This file describes that the application must be packaged into a zip archive. It lists a number of static file dependencies
(fileSets
) and Java library dependencies (dependencySets
) that must be included in the zip.
Expand this section to view the example assembly descriptor file
<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>app</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<!-- This folder should contain all files contained in the config folder of your LuciadLightspeed release. -->
<directory>src/main/resources/config</directory>
<outputDirectory>config</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
<fileSet>
<!-- This folder should contain a script file that allows to easily start running Lucy MapCentric. -->
<directory>src/main/resources/scripts</directory>
<outputDirectory/>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<!-- This folder should contain all obfuscated libraries resulting from the obfuscation step. This folder is configured in the Proguard plugin. -->
<directory>target/obfuscated</directory>
<outputDirectory>lib</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<useStrictFiltering>false</useStrictFiltering>
<useProjectArtifact>false</useProjectArtifact>
<scope>compile</scope>
<includes>
<include>*:jar:*</include>
</includes>
<excludes>
<!-- Exclude the unobfuscated versions the dependencies that get obfuscated. The obfuscated version will be included in the runtime dependencySet. -->
<exclude>com.luciad:*</exclude>
</excludes>
<outputDirectory>lib</outputDirectory>
</dependencySet>
<dependencySet>
<useStrictFiltering>false</useStrictFiltering>
<scope>runtime</scope>
<includes>
<include>*:jar:*</include>
</includes>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
This assembly descriptor assumes that your application launch scripts are located in the directory src/main/resources/scripts
of your Maven project.
Here are some example script files that you can use to run Lucy MapCentric:
Expand this section to view the example batch script file
@echo off
REM memory limit
set JAVA_OPTS=%JAVA_OPTS% -Xmx2000m
REM rendering pipeline
set JAVA_OPTS=%JAVA_OPTS% -Dsun.java2d.opengl=false -Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false
REM drawing quality
set JAVA_OPTS=%JAVA_OPTS% -Dsun.awt.noerasebackground=true -Dswing.aatext=true
REM network connectivity
set JAVA_OPTS=%JAVA_OPTS% -Djava.net.useSystemProxies=true
REM user language
set JAVA_OPTS=%JAVA_OPTS% -Duser.language=en
REM launch application
start javaw %JAVA_OPTS% -cp config;lib\* samples.lucy.frontend.mapcentric.Main
@echo on
Expand this section to view the example bash script file
#!/bin/sh
# memory limits and garbage collection settings
JAVA_OPTS="$JAVA_OPTS -Xmx2000m"
# rendering pipeline
JAVA_OPTS="$JAVA_OPTS -Dsun.java2d.opengl=false -Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false"
# drawing quality
JAVA_OPTS="$JAVA_OPTS -Dsun.awt.noerasebackground=true -Dswing.aatext=true"
# network connectivity
JAVA_OPTS="$JAVA_OPTS -Djava.net.useSystemProxies=true"
# improve debugging behavior
JAVA_OPTS="$JAVA_OPTS -Dsun.awt.disablegrab=true"
# user language
JAVA_OPTS="$JAVA_OPTS -Duser.language=en"
java $JAVA_OPTS -cp config:lib/* samples.lucy.frontend.mapcentric.Main
Setting up the sample project
The build/maven
directory also contains the script files setup-sample-project.bat
and setup-sample-project.sh
.
If you run one of these scripts, it sets up a sample Maven project in the directory build/maven/sampleProject
of your LuciadLightspeed release.
This directory contains all sample source and resource files present in your release, and a pom.xml
file configured to depend on all Luciad components present in your release.
It is required to have NodeJS installed in order to run the sample setup script. |
In the sample project directory:
-
Run the command
mvn compile
to compile all samples. -
Run
mvn exec:exec
to start Lucy MapCentric. -
Run
mvn package
to generate a zip file containing all files necessary to run your application.
To use the settings.xml file in the sample project, you need to run the Maven commands above with the |
Example POM file
This is a complete example of a pom.xml
file for a project that depends on LuciadLightspeed Pro.
Expand this section to view the example POM file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yourcompany</groupId>
<artifactId>sample-project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>sample-project</name>
<url>http://maven.apache.org</url>
<repositories>
<repository>
<id>luciad-repo</id>
<name>Luciad Maven Repository</name>
<url>yourCompanyUrl</url>
</repository>
<repository>
<id>mvn-central</id>
<name>Maven Central Repository</name>
<layout>default</layout>
<url>https://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<properties>
<luciad.version>2024.0</luciad.version>
<luciad.license.version>2024.0-20240515</luciad.license.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<proguard.plugin.version>2.6.0</proguard.plugin.version>
<proguard.base.version>7.4.1</proguard.base.version>
<proguard.core.version>9.1.1</proguard.core.version>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>17</source>
<target>17</target>
<fork>true</fork>
<encoding>UTF-8</encoding>
<meminitial>512m</meminitial>
<maxmem>2048m</maxmem>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<longClasspath>true</longClasspath>
<arguments>
<argument>-Djava.net.useSystemProxies=true</argument>
<argument>-Dsun.awt.noerasebackground=true</argument>
<argument>-Dsun.java2d.opengl=false</argument>
<argument>-Dswing.aatext=true</argument>
<argument>-Dsun.java2d.d3d=false</argument>
<argument>-Djava.library.path=</argument>
<argument>-Xmx2g</argument>
<argument>-classpath</argument>
<classpath/>
<argument>samples.lucy.frontend.mapcentric.Main</argument>
</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>${proguard.plugin.version}</version>
<executions>
<execution>
<id>proguard</id>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<proguardVersion>${proguard.base.version}</proguardVersion>
<proguardInclude>src/proguard/sampleproject.pro</proguardInclude>
<outjar>obfuscated/</outjar>
<libs>
<lib>${java.home}/jmods</lib>
<lib>${openjfx.home}/jmods</lib>
</libs>
<assembly>
<inclusions>
<inclusion>
<groupId>com.luciad</groupId>
<artifactId>*</artifactId>
<filter>!**.pom</filter>
</inclusion>
</inclusions>
</assembly>
</configuration>
<dependencies>
<dependency>
<groupId>com.guardsquare</groupId>
<artifactId>proguard-base</artifactId>
<version>${proguard.base.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.guardsquare</groupId>
<artifactId>proguard-core</artifactId>
<version>${proguard.core.version}</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<tarLongFileMode>posix</tarLongFileMode>
<descriptors>
<descriptor>src/assembly/lightspeed.app.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>package-deliverable</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed-bom</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_pro</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.yourcompany</groupId>
<artifactId>luciadlightspeed_deployment_license</artifactId>
<version>${luciad.license.version}</version>
</dependency>
<!-- Dependencies required to compile the samples -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.2.1</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jcl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-base</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-swing</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>17</version>
</dependency>
<!-- Optional components available for Advanced and Pro Tiers -->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_database_connectors</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_google_earth_enterprise</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_graph_and_routing_engine</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_ogc_server</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_terrain_analysis_engine</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_weather_environment_standards</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!-- Optional components available for Pro Tier only -->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_aviation_standards</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_defense_standards</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_defense_symbology</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_infrastructure_standards</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_maritime_standards</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_radar_connectors</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
<!--
<dependency>
<groupId>com.luciad</groupId>
<artifactId>luciadlightspeed_s63</artifactId>
<version>${luciad.version}</version>
<type>pom</type>
</dependency>
-->
</dependencies>
</project>