datasafe-cli/pom.xml
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.adorsys</groupId>
<artifactId>datasafe</artifactId>
<version>2.0.2-SNAPSHOT</version>
</parent>
<artifactId>datasafe-cli</artifactId>
<properties>
<cli.main.class>de.adorsys.datasafe.cli.Cli</cli.main.class>
</properties>
<dependencies>
<!-- These are necessary dependencies to be used in production code -->
<dependency>
<groupId>de.adorsys</groupId>
<artifactId>datasafe-business</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>de.adorsys</groupId>
<artifactId>datasafe-storage-impl-fs</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>de.adorsys</groupId>
<artifactId>datasafe-storage-impl-s3</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.substratevm</groupId>
<artifactId>svm</artifactId>
<version>${graal.version}</version>
<scope>provided</scope>
</dependency>
<!-- These are for test support only - not needed in production code -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.jar.plugin}</version>
<configuration>
<excludes>
<exclude>de.adorsys.datasafe.cli.hacks.graalfeature</exclude>
</excludes>
<archive>
<manifest>
<mainClass>${cli.main.class}</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>de.ntcomputer</groupId>
<artifactId>executable-packer-maven-plugin</artifactId>
<version>1.0.1</version>
<configuration>
<mainClass>${cli.main.class}</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>pack-executable-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Disable maven-dependency-plugin - that's ok to have undeclared transitive dependencies here-->
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>native-image</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>info.picocli</groupId>
<artifactId>picocli-codegen</artifactId>
<version>${picocli.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>com.oracle.substratevm</groupId>
<artifactId>native-image-maven-plugin</artifactId>
<version>${graal.version}</version>
<executions>
<execution>
<goals>
<goal>native-image</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
<configuration>
<imageName>datasafe-cli</imageName>
<buildArgs>
--no-server
--no-fallback
--enable-all-security-services
--features=de.adorsys.datasafe.cli.hacks.graalfeature.GraalCompileFixNpeOnMissingServiceTypeInKnownProviders,de.adorsys.datasafe.cli.hacks.graalfeature.GraalCompileFixCryptoRegistrar
--initialize-at-build-time=de.adorsys.datasafe.cli.hacks.NoOpRandom
--initialize-at-build-time=org.apache.http.conn.routing.HttpRoute
--initialize-at-build-time=org.apache.http.conn.HttpClientConnectionManager
--initialize-at-build-time=org.apache.http.HttpClientConnection
--initialize-at-build-time=org.apache.http.conn.ConnectionRequest
--initialize-at-build-time=org.apache.http.protocol.HttpContext
--initialize-at-build-time=org.apache.http.pool.ConnPoolControl
--initialize-at-run-time=org.bouncycastle.crypto.prng.SP800SecureRandom
--initialize-at-run-time=org.bouncycastle.jcajce.provider.drbg.DRBG$Default
--initialize-at-run-time=org.bouncycastle.jcajce.provider.drbg.DRBG$NonceAndIV
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>