00dee5147e8d31c56aa9fbf78c8368600bcb6270
[nonrtric/plt/a1policymanagementservice.git] / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 * ========================LICENSE_START=================================
4 * O-RAN-SC
5 * %%
6 * Copyright (C) 2019-2023 Nordix Foundation
7 * %%
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ========================LICENSE_END===================================
20 -->
21 <project
22     xmlns="http://maven.apache.org/POM/4.0.0"
23     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
24     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
25     <modelVersion>4.0.0</modelVersion>
26     <parent>
27         <groupId>org.springframework.boot</groupId>
28         <artifactId>spring-boot-starter-parent</artifactId>
29         <version>3.0.6</version>
30         <relativePath />
31     </parent>
32     <groupId>org.o-ran-sc.nonrtric.plt</groupId>
33     <artifactId>a1policymanagementservice</artifactId>
34     <version>2.6.0-SNAPSHOT</version>
35     <licenses>
36         <license>
37             <name>The Apache Software License, Version 2.0</name>
38             <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
39         </license>
40     </licenses>
41     <repositories>
42         <repository>
43             <id>onap-releases</id>
44             <name>onap-releases</name>
45             <url>https://nexus.onap.org/content/repositories/releases/</url>
46         </repository>
47     </repositories>
48     <properties>
49         <java.version>17</java.version>
50         <json.version>20220924</json.version>
51         <maven-compiler-plugin.version>3.10.0</maven-compiler-plugin.version>
52         <formatter-maven-plugin.version>2.13.0</formatter-maven-plugin.version>
53         <spotless-maven-plugin.version>2.30.0</spotless-maven-plugin.version>
54         <docker-maven-plugin>0.30.0</docker-maven-plugin>
55         <sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version>
56         <jacoco-maven-plugin.version>0.8.8</jacoco-maven-plugin.version>
57         <exec-maven-plugin.version>3.1.0</exec-maven-plugin.version>
58         <software.amazon.awssdk.version>2.19.17</software.amazon.awssdk.version>
59         <springdoc.version>2.0.2</springdoc.version>
60         <springdoc.openapi-ui.version>1.6.14</springdoc.openapi-ui.version>
61     </properties>
62     <dependencies>    
63         <dependency>
64             <groupId>commons-io</groupId>
65             <artifactId>commons-io</artifactId>
66             <version>2.11.0</version>
67         </dependency>
68         <dependency>
69             <groupId>com.google.guava</groupId>
70             <artifactId>guava</artifactId>
71             <version>31.1-jre</version>
72         </dependency>
73         <dependency>
74             <groupId>org.springframework.boot</groupId>
75             <artifactId>spring-boot-starter-web</artifactId>
76         </dependency>
77         <dependency>
78             <groupId>org.springframework.boot</groupId>
79             <artifactId>spring-boot-starter-thymeleaf</artifactId>
80         </dependency>
81         <dependency>
82             <groupId>org.springframework.boot</groupId>
83             <artifactId>spring-boot-starter-webflux</artifactId>
84         </dependency>
85         <dependency>
86             <groupId>org.springframework.boot</groupId>
87             <artifactId>spring-boot-starter-aop</artifactId>
88         </dependency>
89         <dependency>
90             <groupId>org.springframework.boot</groupId>
91             <artifactId>spring-boot-devtools</artifactId>
92             <optional>true</optional>
93         </dependency>
94         <dependency>
95             <groupId>org.springframework.boot</groupId>
96             <artifactId>spring-boot-starter-validation</artifactId>
97         </dependency>
98         <dependency>
99             <groupId>org.springframework</groupId>
100             <artifactId>spring-webflux</artifactId>
101         </dependency>
102         <dependency>
103             <groupId>com.google.code.gson</groupId>
104             <artifactId>gson</artifactId>
105             <version>${gson.version}</version>
106         </dependency>
107         <dependency>
108             <groupId>org.json</groupId>
109             <artifactId>json</artifactId>
110             <version>${json.version}</version>
111         </dependency>
112         <dependency>
113             <groupId>org.springframework.boot</groupId>
114             <artifactId>spring-boot-configuration-processor</artifactId>
115             <optional>true</optional>
116         </dependency>
117         <dependency>
118             <groupId>org.projectlombok</groupId>
119             <artifactId>lombok</artifactId>
120             <scope>provided</scope>
121         </dependency>
122         <dependency>
123             <groupId>org.glassfish.jersey.inject</groupId>
124             <artifactId>jersey-hk2</artifactId>
125         </dependency>
126         <!-- Actuator dependencies -->
127         <dependency>
128             <groupId>org.springframework.boot</groupId>
129             <artifactId>spring-boot-starter-actuator</artifactId>
130         </dependency>
131         <!--REQUIRED
132         TO GENERATE DOCUMENTATION -->
133         <dependency>
134             <groupId>org.springdoc</groupId>
135             <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
136             <version>${springdoc.version}</version>
137         </dependency>
138         <dependency>
139             <groupId>org.springdoc</groupId>
140             <artifactId>springdoc-openapi-ui</artifactId>
141             <version>${springdoc.openapi-ui.version}</version>
142         </dependency>
143         <!-- TEST -->
144         <dependency>
145             <groupId>org.springframework.boot</groupId>
146             <artifactId>spring-boot-starter-test</artifactId>
147             <scope>test</scope>
148         </dependency>
149         <dependency>
150             <groupId>org.awaitility</groupId>
151             <artifactId>awaitility</artifactId>
152             <scope>test</scope>
153         </dependency>
154         <dependency>
155             <groupId>io.projectreactor</groupId>
156             <artifactId>reactor-test</artifactId>
157             <scope>test</scope>
158         </dependency>
159         <dependency>
160             <groupId>org.junit.jupiter</groupId>
161             <artifactId>junit-jupiter-engine</artifactId>
162             <scope>test</scope>
163         </dependency>
164         <dependency>
165             <groupId>org.mockito</groupId>
166             <artifactId>mockito-junit-jupiter</artifactId>
167             <scope>test</scope>
168         </dependency>
169         <dependency>
170             <groupId>org.mockito</groupId>
171             <artifactId>mockito-core</artifactId>
172             <scope>test</scope>
173         </dependency>
174         <dependency>
175             <groupId>com.squareup.okhttp3</groupId>
176             <artifactId>mockwebserver</artifactId>
177             <scope>test</scope>
178         </dependency>
179         <!-- https://mvnrepository.com/artifact/com.github.erosb/everit-json-schema -->
180         <dependency>
181             <groupId>com.github.erosb</groupId>
182             <artifactId>everit-json-schema</artifactId>
183             <version>1.14.1</version>
184         </dependency>
185         <dependency>
186             <groupId>software.amazon.awssdk</groupId>
187             <artifactId>s3</artifactId>
188             <version>${software.amazon.awssdk.version}</version>
189         </dependency>
190         <dependency>
191             <groupId>io.micrometer</groupId>
192             <artifactId>micrometer-registry-prometheus</artifactId>
193         </dependency>
194     </dependencies>
195     <build>
196         <plugins>
197             <plugin>
198                 <groupId>org.springframework.boot</groupId>
199                 <artifactId>spring-boot-maven-plugin</artifactId>
200             </plugin>
201             <plugin>
202                 <groupId>org.apache.maven.plugins</groupId>
203                 <artifactId>maven-surefire-plugin</artifactId>
204                 <configuration>
205                     <skipTests>false</skipTests>
206                 </configuration>
207             </plugin>
208             <plugin>
209                 <artifactId>maven-failsafe-plugin</artifactId>
210             </plugin>
211             <plugin>
212                 <groupId>org.codehaus.mojo</groupId>
213                 <artifactId>build-helper-maven-plugin</artifactId>
214                 <executions>
215                     <execution>
216                         <id>add-source</id>
217                         <phase>generate-sources</phase>
218                         <goals>
219                             <goal>add-source</goal>
220                         </goals>
221                         <configuration>
222                             <sources>
223                                 <source>${project.build.directory}/generated-sources/annotations/</source>
224                             </sources>
225                         </configuration>
226                     </execution>
227                 </executions>
228             </plugin>
229             <plugin>
230                 <groupId>org.jacoco</groupId>
231                 <artifactId>jacoco-maven-plugin</artifactId>
232                 <version>${jacoco-maven-plugin.version}</version>
233                 <executions>
234                     <execution>
235                         <id>default-prepare-agent</id>
236                         <goals>
237                             <goal>prepare-agent</goal>
238                         </goals>
239                     </execution>
240                     <execution>
241                         <id>default-report</id>
242                         <phase>prepare-package</phase>
243                         <goals>
244                             <goal>report</goal>
245                         </goals>
246                     </execution>
247                 </executions>
248             </plugin>
249             <plugin>
250                 <groupId>io.fabric8</groupId>
251                 <artifactId>docker-maven-plugin</artifactId>
252                 <version>${docker-maven-plugin}</version>
253                 <inherited>false</inherited>
254                 <executions>
255                     <execution>
256                         <id>generate-a1policymanagementservice-image</id>
257                         <phase>package</phase>
258                         <goals>
259                             <goal>build</goal>
260                         </goals>
261                         <configuration>
262                             <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry>
263                             <images>
264                                 <image>
265                                     <name>
266                                         o-ran-sc/nonrtric-plt-a1policymanagementservice:${project.version}</name>
267                                     <build>
268                                         <cleanup>try</cleanup>
269                                         <contextDir>${basedir}</contextDir>
270                                         <dockerFile>Dockerfile</dockerFile>
271                                         <filter>false</filter>
272                                         <args>
273                                             <JAR>${project.build.finalName}.jar</JAR>
274                                         </args>
275                                         <tags>
276                                             <tag>${project.version}</tag>
277                                         </tags>
278                                     </build>
279                                 </image>
280                             </images>
281                         </configuration>
282                     </execution>
283                     <execution>
284                         <id>push-a1policymanagementservice-image</id>
285                         <goals>
286                             <goal>build</goal>
287                             <goal>push</goal>
288                         </goals>
289                         <configuration>
290                             <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry>
291                             <pushRegistry>${env.CONTAINER_PUSH_REGISTRY}</pushRegistry>
292                             <images>
293                                 <image>
294                                     <name>
295                                         o-ran-sc/nonrtric-plt-a1policymanagementservice:${project.version}</name>
296                                     <build>
297                                         <contextDir>${basedir}</contextDir>
298                                         <dockerFile>Dockerfile</dockerFile>
299                                         <filter>false</filter>
300                                         <args>
301                                             <JAR>${project.build.finalName}.jar</JAR>
302                                         </args>
303                                         <tags>
304                                             <tag>${project.version}</tag>
305                                             <tag>latest</tag>
306                                         </tags>
307                                     </build>
308                                 </image>
309                             </images>
310                         </configuration>
311                     </execution>
312                 </executions>
313             </plugin>
314             <!-- support sonar in multi-module project -->
315             <plugin>
316                 <groupId>org.sonarsource.scanner.maven</groupId>
317                 <artifactId>sonar-maven-plugin</artifactId>
318                 <version>${sonar-maven-plugin.version}</version>
319             </plugin>
320             <plugin>
321                 <groupId>org.codehaus.mojo</groupId>
322                 <artifactId>exec-maven-plugin</artifactId>
323                 <version>${exec-maven-plugin.version}</version>
324                 <executions>
325                     <execution>
326                         <id>git submodule update</id>
327                         <phase>initialize</phase>
328                         <configuration>
329                             <executable>git</executable>
330                             <arguments>
331                                 <argument>submodule</argument>
332                                 <argument>update</argument>
333                                 <argument>--init</argument>
334                                 <argument>--recursive</argument>
335                             </arguments>
336                         </configuration>
337                         <goals>
338                             <goal>exec</goal>
339                         </goals>
340                     </execution>
341                     <execution>
342                         <id>copy configuration</id>
343                         <phase>initialize</phase>
344                         <configuration>
345                             <executable>cp</executable>
346                             <arguments>
347                                 <argument>-r</argument>
348                                 <argument>onap/oran/a1-policy-management/config</argument>
349                                 <argument>.</argument>
350                             </arguments>
351                         </configuration>
352                         <goals>
353                             <goal>exec</goal>
354                         </goals>
355                     </execution>
356                 </executions>
357             </plugin>
358         </plugins>
359     </build>
360     <issueManagement>
361         <system>JIRA</system>
362         <url>https://jira.o-ran-sc.org/</url>
363     </issueManagement>
364 </project>