Maven Project Setup

By INN and APP Provided Maven Parents

There exist three types of parents that can be used. They differ in the type of classifiers that are released with the product.

csco-parent

This parent should not be used for java projects.
Only creates a plain JAR archive and deploys it.
<parent>
<groupId>de.gsi.cs.co</groupId>
<artifactId>csco-parent</artifactId>
<version>16.0.0</version>
</parent>

Properties that can be overridden and are used also by extending parents:

<maven.site.skip>false</maven.site.skip> <!-- set to true if you don't want a site generation on deploy -->

<!-- property to remove INDEX.LIST files -->
<bundle.keepIndexList>false</bundle.keepIndexList>

<!-- config urls used for loading properties -->
<config.url.cscoap.dev>https://websvcdev.acc.gsi.de/groups/cscoap/config/</config.url.cscoap.dev>
<config.url.cscoap.int>https://websvcint.acc.gsi.de/groups/cscoap/config/</config.url.cscoap.int>
<config.url.cscoap.pro>https://websvcpro.acc.gsi.de/groups/cscoap/config/</config.url.cscoap.pro>

<!-- the git organization of your project -->
<git.organization>buildsystem-common</git.organization>

More information can be found here.

csco-parent-java

This parent should be used for java libraries.
Creates a JAR, JavaDoc and Sources and deploys it.
<parent>
<groupId>de.gsi.cs.co</groupId>
<artifactId>csco-parent-java</artifactId>
<version>16.0.0</version>
</parent>

Project structure:
.
|-- pom.xml
`-- src
    |-- main
    |   |-- java
    |   `-- resources
    |
    |-- test
    |   `-- java
    |
    `-- site (optional)
        `-- apt
            `-- index.apt (defining the content of the "About" site)

Properties that can be overridden and are used also by extending parents:

<!-- all properties from csco-parent can also be overridden -->

<!-- Adjust this to point to your GIT repository where you want to share the project -->
<git.organization>fcc-applications</git.organization>

<!-- Adjust this to point to your cluster path where you want to share the documentation -->
<docu.path>/common/usr/cscoap/htdocs</docu.path>
<docu.url.snapshot>file:${docu.path}/playground/${user.name}/docu/</docu.url.snapshot>
<docu.url.release>file:${docu.path}/docu/</docu.url.release>

More information can be found here.

csco-parent-java-bundle

This parent should be used for java executables, e.g. services or applicatioins.
Creates JavaDoc and Sources and generates a bundled ZIP file (containing all libraries and Shell scripts for rollout).

<parent>
<groupId>de.gsi.cs.co</groupId>
<artifactId>csco-parent-java-bundle</artifactId>
<version>16.0.0</version>
</parent>

Project structure:

.
|-- pom.xml
`-- src
    |-- main
    |   |-- java
    |   `-- resources
    |
    |-- test
    |   `-- java
    |
    `-- site (optional)
        `-- apt
            `-- index.apt (defining the content of the "About" site)

Properties that can be overridden and are used also by extending parents:

<!-- all properties from csco-parent-java can also be overridden -->

<!-- Adjust this to point to your main class -->
<bundle.mainClass>please.set.the.bundle.properties</bundle.mainClass>

<!-- properties to replace config urls -->
<config.url.dev>${config.url.cscoap.dev}</config.url.dev>
<config.url.int>${config.url.cscoap.int}</config.url.int>
<config.url.pro>${config.url.cscoap.pro}</config.url.pro>

<!-- properties to replace log4j urls -->
<config.log4j.dev>log4j2-dev.xml</config.log4j.dev>
<config.log4j.int>log4j2-int.xml</config.log4j.int>
<config.log4j.pro>log4j2-pro.xml</config.log4j.pro>

More information can be found here.

Common dependencies

lsa-server-gsi

This artifact provides access to the lsa system, it can be used inside services and does not have any UI dependencies.
<dependency>
<groupId>de.gsi.lsa.core</groupId>
<artifactId>lsa-server-gsi</artifactId>
<version>16.0.0</version>
</dependency>

common-uilib

This artifact is used for all projects above lsa-server-gsi that have a UI providing also libraries like accsoft-gui-frame as transitive dependencies.

<dependency>
<groupId>de.gsi.fcc.applications</groupId>
<artifactId>common-uilib-fx</artifactId>
<version>16.0.0</version>
</dependency>

or for swing:
<dependency>
<groupId>de.gsi.fcc.applications</groupId>
<artifactId>common-uilib-swing</artifactId>
<version>16.0.0</version>
</dependency>
Topic revision: r17 - 07 Apr 2021, AndreasSchaller
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback