aboutsummaryrefslogtreecommitdiffstats
path: root/prh-app-server/pom.xml
diff options
context:
space:
mode:
authorPiotr Bochenski <piotr.bochenski@nokia.com>2018-08-31 11:49:21 +0200
committerPiotr Bochenski <piotr.bochenski@nokia.com>2018-08-31 12:11:46 +0200
commit3c2766d8a64d21f402b5234e33419a8aed14d7ea (patch)
tree66e26cdf9dad86b8787806a1d7914c1d21b06ae0 /prh-app-server/pom.xml
parent6fd8c7770fbea30ad2ec6e3f7645b8baab5a49a1 (diff)
Refactor Docker image building process
Align Docker image building process to VES project. Also refactor all Maven configurations. Change-Id: I3856bb75f41247f5ce7f17fb813aa2ab692e4def Issue-ID: DCAEGEN2-737 Signed-off-by: Piotr Bochenski <piotr.bochenski@nokia.com>
Diffstat (limited to 'prh-app-server/pom.xml')
-rw-r--r--prh-app-server/pom.xml214
1 files changed, 91 insertions, 123 deletions
diff --git a/prh-app-server/pom.xml b/prh-app-server/pom.xml
index daaa5acb..9ecf57b5 100644
--- a/prh-app-server/pom.xml
+++ b/prh-app-server/pom.xml
@@ -18,124 +18,120 @@
~ limitations under the License.
~ ============LICENSE_END=========================================================
-->
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://maven.apache.org/POM/4.0.0"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<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>
- <artifactId>prh</artifactId>
<groupId>org.onap.dcaegen2.services</groupId>
+ <artifactId>prh</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>prh-app-server</artifactId>
<groupId>org.onap.dcaegen2.services.prh</groupId>
+ <artifactId>prh-app-server</artifactId>
<packaging>jar</packaging>
+
<properties>
+ <docker.image.name>onap/${project.groupId}.${project.artifactId}</docker.image.name>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
- <project.fatJar.finalName>prh-app-server</project.fatJar.finalName>
- <nexusproxy>https://nexus.onap.org</nexusproxy>
- <snapshots.path>content/repositories/snapshots/</snapshots.path>
- <releases.path>content/repositories/releases/</releases.path>
- <docker.repo.url>${onap.nexus.dockerregistry.daily}</docker.repo.url>
- <nexus.staging>false</nexus.staging>
</properties>
+
<build>
+ <resources>
+ <resource>
+ <directory>config</directory>
+ <targetPath>${project.build.directory}/config</targetPath>
+ </resource>
+ </resources>
+
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <executions>
- <execution>
- <id>custom-resources</id>
- <phase>process-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.directory}/config</outputDirectory>
- <resources>
- <resource>
- <directory>${project.basedir}/config</directory>
- <filtering>true</filtering>
- </resource>
- </resources>
- <encoding>UTF-8</encoding>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>repackage</goal>
- </goals>
- </execution>
- </executions>
<configuration>
- <finalName>${project.fatJar.finalName}</finalName>
+ <finalName>${project.artifactId}</finalName>
<mainClass>org.onap.dcaegen2.services.prh.MainApp</mainClass>
</configuration>
</plugin>
- <!-- This plugin may go away in favor of a custom Dockerfile provided by Carsten and co. -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
- <skipDockerBuild>false</skipDockerBuild>
- <imageName>
- ${docker.repo.url}/onap/${project.groupId}.${project.artifactId}
- </imageName>
+ <serverId>${onap.nexus.dockerregistry.daily}</serverId>
+ <imageName>${docker.image.name}</imageName>
+ <imageTags>
+ <tag>latest</tag>
+ </imageTags>
<baseImage>openjdk:8-jre-alpine</baseImage>
- <entryPoint>["java", "-jar", "/opt/${project.fatJar.finalName}.jar"]</entryPoint>
<resources>
<resource>
- <targetPath>/opt</targetPath>
<directory>${project.build.directory}</directory>
- <include>${project.fatJar.finalName}.jar</include>
+ <include>${project.artifactId}.jar</include>
+ <targetPath>/opt</targetPath>
</resource>
<resource>
- <targetPath>/config</targetPath>
<directory>${project.build.directory}/config</directory>
- <include>*</include>
+ <targetPath>/config</targetPath>
</resource>
</resources>
<exposes>
<expose>8100</expose>
<expose>8433</expose>
</exposes>
- <imageTags>
- <imageTag>${project.version}-SNAPSHOT-${maven.build.timestamp}Z</imageTag>
- <imageTag>${project.version}</imageTag>
- <imageTag>latest</imageTag>
- </imageTags>
- <serverId>${docker.repo.url}</serverId>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.sonatype.plugins</groupId>
- <artifactId>nexus-staging-maven-plugin</artifactId>
- <version>1.6.7</version>
- <extensions>true</extensions>
- <configuration>
- <serverId>ecomp-staging</serverId>
- <nexusUrl>${nexusproxy}</nexusUrl>
- <stagingProfileId>176c31dfe190a</stagingProfileId>
- <skipNexusStagingDeployMojo>${nexus.staging}</skipNexusStagingDeployMojo>
+ <entryPoint>["java", "-jar", "/opt/${project.artifactId}.jar"]</entryPoint>
</configuration>
+ <executions>
+ <execution>
+ <id>build-image</id>
+ <phase>package</phase>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>tag-and-push-image-latest</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>tag</goal>
+ </goals>
+ <configuration>
+ <image>${docker.image.name}:latest</image>
+ <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:latest</newName>
+ <pushImage>true</pushImage>
+ </configuration>
+ </execution>
+ <execution>
+ <id>tag-and-push-image-with-version</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>tag</goal>
+ </goals>
+ <configuration>
+ <image>${docker.image.name}:latest</image>
+ <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}</newName>
+ <pushImage>true</pushImage>
+ </configuration>
+ </execution>
+ <execution>
+ <id>tag-and-push-image-with-version-and-date</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>tag</goal>
+ </goals>
+ <configuration>
+ <image>${docker.image.name}:latest</image>
+ <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}-${maven.build.timestamp}Z</newName>
+ <pushImage>true</pushImage>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
</plugins>
</build>
- <dependencies>
- <!--DEVELOPMENT DEPENDENCIES-->
+ <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
@@ -145,20 +141,18 @@
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <exclusions>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
</dependency>
<dependency>
+ <groupId>org.immutables</groupId>
+ <artifactId>value</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.immutables</groupId>
+ <artifactId>gson</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
@@ -167,10 +161,6 @@
<artifactId>bcpkix-jdk15on</artifactId>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</dependency>
@@ -183,21 +173,21 @@
<artifactId>tomcat-embed-websocket</artifactId>
</dependency>
<dependency>
- <groupId>org.immutables</groupId>
- <artifactId>value</artifactId>
+ <groupId>org.onap.dcaegen2.services.prh</groupId>
+ <artifactId>prh-commons</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.immutables</groupId>
- <artifactId>gson</artifactId>
+ <groupId>org.onap.dcaegen2.services.prh</groupId>
+ <artifactId>prh-aai-client</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.onap.dcaegen2.services.prh</groupId>
- <artifactId>prh-commons</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <artifactId>prh-dmaap-client</artifactId>
+ <version>${project.version}</version>
</dependency>
-
- <!-- LOGGING DEPENDENCIES-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
@@ -211,7 +201,6 @@
<artifactId>log4j-over-slf4j</artifactId>
</dependency>
- <!--TESTS DEPENDENCIES -->
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
@@ -235,6 +224,7 @@
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -254,19 +244,9 @@
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
- </dependency>
- <dependency>
- <groupId>org.onap.dcaegen2.services.prh</groupId>
- <artifactId>prh-aai-client</artifactId>
- <version>${project.parent.version}</version>
- </dependency>
- <dependency>
- <groupId>org.onap.dcaegen2.services.prh</groupId>
- <artifactId>prh-dmaap-client</artifactId>
- <version>${project.parent.version}</version>
+ <scope>test</scope>
</dependency>
- <!--REQUIRED TO GENERATE DOCUMENTATION -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
@@ -276,16 +256,4 @@
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
</dependencies>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <!-- IMPORT DEPENDENCY MANAGEMENT FROM SPRING BOOT -->
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-dependencies</artifactId>
- <version>2.0.1.RELEASE</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
</project>