Maven Project Setup

By INN and APP Provided Maven Parents

There exist four 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. Provides information about INN managed artifactory and java toolchain.

<parent>
<groupId>de.gsi.cs.co</groupId>
<artifactId>csco-parent</artifactId>
<version>17.0.3</version>
</parent>

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

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

csco-parent-maven

This parent defines maven plugin versions and basic configurations.

More information can be found here.

acoapp-third-party-bom

This parent provides dependency management for commonly used 3rd party dependencies (e.g. Spring, JUnit, ...).

csco-parent-java

This parent should be used for java libraries and applications.
Creates a JAR, JavaDoc and Sources and deploys it.

It can also create bundle zips, to do so please provide the file .mvn/build.bundle .

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

Project structure of a project that uses this parent:
.
|-- pom.xml
|
|-- .mvn (optional)
| ` build.bundle
| `-- src |-- main | |-- java | `-- resources | |-- test | `-- java | `-- site (optional) `-- markdown `-- index.md (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 the path under websvc[dev|pro] (WebDAV) where you want to share the documentation -->
<docu.path>groups/fcc/docu/${project.artifactId}/${project.version}/</docu.path>

<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>http://config.development.lb.a.k8s.acc.gsi.de/application/profile/dev/</config.url.cscoap.dev>
<config.url.cscoap.int>http://vmla004.acc.gsi.de:58080/application/profile/int/</config.url.cscoap.int>
<config.url.cscoap.pro>http://asl156.acc.gsi.de:58080/application/profile/pro/</config.url.cscoap.pro>

<!-- 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-client-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-client-gsi</artifactId>
<version>18.0.0</version>
</dependency>

common-uilib

This artifact is used for all projects above lsa-client-gsi that have a UI.

For Fx:

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

For Swing:
<dependency>
<groupId>de.gsi.fcc.applications</groupId>
<artifactId>common-uilib-swing</artifactId>
<version>18.0.0</version>
</dependency>
Topic revision: r18 - 24 Feb 2023, AnnekeWalter
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