This article explains how you can make LuciadFusion 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 LuciadFusion. You can find those POM files in the build/maven/pom directory. To deploy them to your repository, run the script deploy.bat or deploy.sh 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.9.1. Ant must have access to the Maven Ant Tasks library. You can give Ant access to the Maven Tasks library, either by storing it in Ant’s lib directory, by including it in the CLASSPATH environment variable, or by supplying it through the -lib command line parameter. LuciadFusion provides recent versions of the Maven Ant Tasks library in the build/ant directory of the LuciadFusion installation.

If you want support for protocols other than file and http, you can make use of Maven Wagon. See http://maven.apache.org/wagon/ for more information.

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 LuciadFusion 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 LuciadFusion product tiers.

The available product tier POM dependencies
  • luciadfusion_essential

  • luciadfusion_advanced

  • luciadfusion_pro

Table 1. Overview of available optional components and their POM dependency name
Optional Component Name POM Dependency Name

Aviation Standards

luciadfusion_aviation_standards

Database Connectors

luciadfusion_database_connectors

Defense Standards

luciadfusion_defense_standards

Defense Symbology

luciadfusion_defense_symbology

Google Earth Enterprise

luciadfusion_google_earth_enterprise

Graph and Routing Engine

luciadfusion_graph_and_routing_engine

Infrastructure Standards

luciadfusion_infrastructure_standards

Maritime Standards

luciadfusion_maritime_standards

Radar Connectors

luciadfusion_radar_connectors

S-63

luciadfusion_s63

Terrain Analysis Engine

luciadfusion_terrain_analysis_engine

Weather & Environment Standards

luciadfusion_weather_environment_standards

You can put this information in your POM file to add a dependency for the LuciadFusion Pro tier:

Program: Adding a dependency for LuciadFusion Pro
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_pro</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>

The example uses a placeholder for the LuciadFusion version. It’s recommended to define a Maven property for the LuciadFusion 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 LuciadFusion version.

Adding a server dependency

The LuciadFusion POM files don’t have a server dependency. We leave the choice of server open to customers. To get LuciadFusion to run, you must add a dependency for the server you want to use, Tomcat or Jetty for example. We recommend using one of the spring-boot-starter server dependencies offered by the Spring framework. The deployment scripts don’t deploy the server dependencies. Therefore, you must make sure that the server dependency is available in your Maven repository, or you must add a public repository with this dependency to your POM configuration.

Program: Adding a dependency for a Java Server
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jetty</artifactId>
      <version>2.7.18</version>
    </dependency>

Adding the configuration files

LuciadFusion needs a number of configuration files to run. The deployment script doesn’t deploy these files to the Maven repository because you may customize them for your application. This means that you must manually add them to your project. You can find these configuration files in the config directory of your LuciadFusion release.

We recommend that you copy this directory in the src/main/resources directory of your Maven project.

In your project’s pom.xml, you must specify:

Program: Adding the configuration directory to the resources
    <resources>
      <resource>
        <directory>src/main/resources/config</directory>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>

Adding a license file

LuciadFusion 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.

Program: Adding a license
mvn deploy:deploy-file \
  -DgroupId=com.yourcompany \               # Do not use com.luciad.
  -DartifactId=luciadfusion_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 artifactId for each of these license files is unique.

If you are using a remote repository, you must authenticate the deploy:deploy-file command. To do so, you must define a server in your settings.xml with the necessary credentials, and pass the server ID to the command using the repositoryId parameter.

Here is an example server configuration in settings.xml:

Program: settings.xml configuration
  <servers>
    <server>
      <id>yourCompanyRepositoryId</id>
      <url>yourCompanyRepositoryUrl</url>
      <username>username</username>
      <password>password</password>
    </server>
  </servers>

Next, in your project’s pom.xml, specify:

Program: Adding a license
    <dependency>
      <groupId>com.yourcompany</groupId>
      <artifactId>luciadfusion_development_license</artifactId>
      <version>${luciad.license.version}</version>
    </dependency>

Adding an execution plugin (optional)

If you want to execute LuciadFusion Studio from the command line, you can add this plugin configuration to your project’s pom.xml. Once you configured this plugin, you can run LuciadFusion Studio using the command mvn compile exec:java.

For an explanation of the configured system properties, see the IDE integration article.

Program: Adding an execution 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>-Dspring.profiles.active=fusion.single,fusion.development</argument>
            <argument>-Dfusion.server.trayIcon=false</argument>
            <argument>-Djava.awt.headless=true</argument>
            <argument>-Djava.net.useSystemProxies=true</argument>
            <argument>-Djava.util.logging.config.file=</argument>
            <argument>-Dsun.awt.noerasebackground=true</argument>
            <argument>-Dsun.java2d.noddraw=true</argument>
            <argument>-Dsun.java2d.opengl=false</argument>
            <argument>-Dswing.aatext=true</argument>
            <argument>-Djava.library.path=</argument>
            <argument>-Xmx4g</argument>
            <argument>-classpath</argument>
            <classpath/>
            <argument>com.luciad.fusion.platform.TLfnFusionPlatformApplication</argument>
          </arguments>
        </configuration>
      </plugin>

Adding a ProGuard plugin for obfuscation

You can choose to obfuscate the class files of the LuciadFusion API when you deploy your application. You can achieve this by adding the following plugin configuration that will perform the obfuscation step.

Program: Adding a ProGuard 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>
            <!-- for Java <= 1.8 -->
            <lib>${java.home}/lib/rt.jar</lib>
            <lib>${java.home}/lib/jce.jar</lib>
            <lib>${java.home}/lib/jsse.jar</lib>
            <lib>${java.home}/lib/ext/jfxrt.jar</lib>
            <!-- for OpenJDK >= 11.0 -->
            <!-- remove <lib> elements above and uncomment <lib> elements below -->
            <!-- <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.fusion.pro from your Maven project root. This file includes the ProGuard configuration file build/proguard/luciad_fusionplatform_service.pro of your LuciadFusion release. You can also add any custom ProGuard configuration to this file. You could exclude your own code from being obfuscated, for example.

Program: ProGuard configuration
# Include LuciadFusion obfuscation script
-include luciad_fusionplatform_service.pro
# Include the samples ProGuard configuration if you intend to compile the samples
# -include samples.pro

# Don't let ProGuard throw warnings for missing javafx dependencies. Remove these lines if you depend on JavaFX in your project.
-dontwarn javafx.**
-dontwarn **.javafx.**
-dontwarn com.luciad.format.bingmaps.copyright.*
-dontwarn com.luciad.view.animation.*

# 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.

Program: Adding an Assembly 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/fusion.app.xml</descriptor>
            <descriptor>src/assembly/fusion.war.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 descriptors src/assembly/fusion.app.xml and src/assembly/fusion.war.xml from your Maven project root.

The fusion.app.xml describes that the application must be packaged into a zip archive, with all LuciadFusion dependencies, including the embedded web-server dependencies. The result is a zip file containing your web-application, ready for stand-alone deployment without the need to deploy it to a web-server. This description assumes that the folder src/main/resources/scripts contains the StartFusionPlatformServer.bat and StartFusionPlatformServer.sh scripts file located in the folder build/fusionplatform folder of your LuciadFusion release.

Expand this section to view the example standalone assembly descriptor

Program: Standalone assembly descriptor
<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>standalone</id>

  <formats>
    <format>zip</format>
  </formats>

  <includeBaseDirectory>true</includeBaseDirectory>

  <fileSets>
    <!-- This folder should contain all files contained in the config folder of your LuciadFusion release. -->
    <fileSet>
      <directory>src/main/resources/config</directory>
      <outputDirectory>config</outputDirectory>
      <fileMode>0644</fileMode>
    </fileSet>

    <fileSet>
      <directory>src/etc/scripts</directory>
      <outputDirectory/>
      <fileMode>0755</fileMode>
    </fileSet>

    <fileSet>
      <directory>target/obfuscated</directory>
      <outputDirectory>lib</outputDirectory>
    </fileSet>

    <fileSet>
      <directory>src/etc/licenses</directory>
      <outputDirectory>lib</outputDirectory>
      <includes>
        <include>*.jar</include>
      </includes>
    </fileSet>
  </fileSets>


  <fileSets>
    <fileSet>
      <!-- This folder should contain all files contained in the config folder of your LuciadFusion release. -->
      <directory>src/main/resources/config</directory>
      <outputDirectory>config</outputDirectory>
      <fileMode>0644</fileMode>
    </fileSet>
    <fileSet>
      <!-- This folder should contain the script files contained in the build/fusionplatform folder of your  LuciadFusion release. -->
      <directory>src/main/resources/scripts</directory>
      <outputDirectory/>
      <fileMode>0755</fileMode>
    </fileSet>
    <!-- This folder should contain all obfuscated libraries resulting from the obfuscation step. This folder is configured in the Proguard plugin. -->
    <fileSet>
      <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>

The fusion.war.xml describes that the application must be packaged in a WAR archive, and must exclude the embedded application server container dependencies. In this example, it is assumed that the Jetty embedded web server is used during development. The result is a WAR file ready for deployment on an application server, for example Tomcat. This description assumes that the folder src/main/resources/webapp/WEB-INF contains all files in the folder build/fusionplatform/WEB-INF, and the file StartFusionPlatformServer.sh script file build/fusionplatform/web.xml of your LuciadFusion release.

Expand this section to view the example deployment assembly descriptor

Program: Deployment assembly descriptor
<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>webapp</id>

  <formats>
    <format>war</format>
  </formats>

  <includeBaseDirectory>false</includeBaseDirectory>

  <fileSets>
    <fileSet>
      <!-- This folder should contain the xml files contained in the build/fusionplatform/WEB-INF folder
           and the build/fusionplatform/web.xml file of your LuciadFusion release. -->
      <directory>src/main/resources/webapp/WEB-INF</directory>
      <outputDirectory>WEB-INF</outputDirectory>
    </fileSet>
    <fileSet>
      <!-- This folder should contain all files contained in the config folder of your LuciadFusion release. -->
      <directory>src/main/resources/config</directory>
      <outputDirectory>WEB-INF/classes</outputDirectory>
    </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>WEB-INF/lib</outputDirectory>
    </fileSet>
  </fileSets>

  <dependencySets>
    <dependencySet>
      <useStrictFiltering>true</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>WEB-INF/lib</outputDirectory>
    </dependencySet>
    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <scope>runtime</scope>
      <includes>
        <include>*:jar:*</include>
      </includes>
      <excludes>
        <!-- Jetty is embedded as the container for stand-alone application packages.
             The war is meant to be deployed in a shared container and we do not want
             to include an embedded container in that case. -->
        <exclude>*:spring-boot-starter-jetty</exclude>
        <exclude>jakarta.websocket:*</exclude>
        <exclude>jakarta.servlet:*</exclude>
        <exclude>org.eclipse.jetty:*</exclude>
        <exclude>org.eclipse.jetty.websocket:*</exclude>
      </excludes>
      <outputDirectory>WEB-INF/lib</outputDirectory>
    </dependencySet>
  </dependencySets>
</assembly>

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 LuciadFusion 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:

  1. Run the command mvn compile to compile all samples.

  2. Run mvn exec:exec to start LuciadFusion Studio.

  3. Run mvn package to generate a standalone zip file containing all files necessary to run your application, and a deployment war ready for deployment on an application server.

To use the settings.xml file in the sample project, you need to run the Maven commands above with the --settings settings.xml parameter.

Example POM file

This is a complete example of a pom.xml file for a project that depends on LuciadFusion Pro:

Expand this section to view the example POM file

Program: A complete 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>2021.0</luciad.version>
    <luciad.license.version>2021.0-20210404</luciad.license.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <proguard.plugin.version>2.5.3</proguard.plugin.version>
    <proguard.base.version>7.2.1</proguard.base.version>
    <proguard.core.version>8.0.7</proguard.core.version>
  </properties>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources/config</directory>
      </resource>
      <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>1.8</source>
          <target>1.8</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>-Dspring.profiles.active=fusion.single,fusion.development</argument>
            <argument>-Dfusion.server.trayIcon=false</argument>
            <argument>-Djava.awt.headless=true</argument>
            <argument>-Djava.net.useSystemProxies=true</argument>
            <argument>-Djava.util.logging.config.file=</argument>
            <argument>-Dsun.awt.noerasebackground=true</argument>
            <argument>-Dsun.java2d.noddraw=true</argument>
            <argument>-Dsun.java2d.opengl=false</argument>
            <argument>-Dswing.aatext=true</argument>
            <argument>-Djava.library.path=</argument>
            <argument>-Xmx4g</argument>
            <argument>-classpath</argument>
            <classpath/>
            <argument>com.luciad.fusion.platform.TLfnFusionPlatformApplication</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>
            <!-- for Java <= 1.8 -->
            <lib>${java.home}/lib/rt.jar</lib>
            <lib>${java.home}/lib/jce.jar</lib>
            <lib>${java.home}/lib/jsse.jar</lib>
            <lib>${java.home}/lib/ext/jfxrt.jar</lib>
            <!-- for OpenJDK >= 11.0 -->
            <!-- remove <lib> elements above and uncomment <lib> elements below -->
            <!-- <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/fusion.app.xml</descriptor>
            <descriptor>src/assembly/fusion.war.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>package-deliverable</id>
            <goals>
              <goal>single</goal>
            </goals>
            <phase>package</phase>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_pro</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    <dependency>
      <groupId>com.yourcompany</groupId>
      <artifactId>luciadfusion_development_license</artifactId>
      <version>${luciad.license.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jetty</artifactId>
      <version>2.7.18</version>
    </dependency>
    <!-- Optional components available for Advanced and Pro Tiers -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_database_connectors</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_google_earth_enterprise</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_graph_and_routing_engine</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_terrain_analysis_engine</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_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>luciadfusion_aviation_standards</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_defense_standards</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_defense_symbology</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_infrastructure_standards</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_maritime_standards</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_radar_connectors</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>com.luciad</groupId>
      <artifactId>luciadfusion_s63</artifactId>
      <version>${luciad.version}</version>
      <type>pom</type>
    </dependency>
    -->
  </dependencies>
</project>