9c66b41fbc3d2b686d6ceb24990a4afd9c82acf0
[ccsdk/parent.git] / odlparent / client-parent / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <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">
3     <modelVersion>4.0.0</modelVersion>
4
5     <groupId>org.onap.ccsdk.parent</groupId>
6     <artifactId>client-parent</artifactId>
7     <version>2.1.1-SNAPSHOT</version>
8     <packaging>pom</packaging>
9
10     <name>ONAP :: ${project.groupId} :: ${project.artifactId}</name>
11     <description>Root POM to be used for yang2swagger generation in CCSDK based projects</description>
12     <url>http://wiki.onap.org</url>
13     <organization>
14         <name>ONAP</name>
15     </organization>
16
17     <issueManagement>
18         <system>JIRA</system>
19         <url>https://jira.onap.org/</url>
20     </issueManagement>
21     <distributionManagement>
22         <repository>
23             <id>ecomp-releases</id>
24             <url>https://nexus.onap.org/content/repositories/releases</url>
25         </repository>
26         <snapshotRepository>
27             <id>ecomp-snapshots</id>
28             <url>https://nexus.onap.org/content/repositories/snapshots</url>
29         </snapshotRepository>
30     </distributionManagement>
31
32     <properties>
33
34         <!-- properties from oparent -->
35         <maven.compiler.source>1.8</maven.compiler.source>
36         <maven.compiler.target>1.8</maven.compiler.target>
37         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
38         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
39         <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
40         <!-- sitePath may be overridden in the inheriting POM if desired -->
41         <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>
42
43         <!-- ONAP repositories -->
44         <onap.nexus.host>nexus.onap.org</onap.nexus.host>
45         <onap.nexus.port>443</onap.nexus.port>
46         <onap.nexus.protocol>https</onap.nexus.protocol>
47         <onap.nexus.public-url>https://nexus.onap.org/content/groups/public</onap.nexus.public-url>
48         <onap.nexus.staging-url>https://nexus.onap.org/content/groups/staging</onap.nexus.staging-url>
49         <onap.nexus.release-url>https://nexus.onap.org/content/repositories/releases</onap.nexus.release-url>
50         <onap.nexus.snapshot-url>https://nexus.onap.org/content/repositories/snapshots</onap.nexus.snapshot-url>
51         <onap.nexus.staging.server-id>ecomp-staging</onap.nexus.staging.server-id>
52         <onap.nexus.staging.profile-id>176c31dfe190a</onap.nexus.staging.profile-id>
53
54         <!-- OpenDaylight repositories -->
55         <opendaylight.nexus.public-url>https://nexus.opendaylight.org/content/repositories/public/</opendaylight.nexus.public-url>
56         <opendaylight.nexus.snapshot-url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</opendaylight.nexus.snapshot-url>
57
58         <java.version.source>1.8</java.version.source>
59         <java.version.target>1.8</java.version.target>
60         <maven.compiler.version>3.6.1</maven.compiler.version>
61
62         <checkstyle.skip>true</checkstyle.skip>
63
64         <org.json.version>20170516</org.json.version>
65         <jackson.version>2.11.0</jackson.version>
66         <!-- Need to stick to JUnit 4.11 until https://github.com/jayway/powermock/issues/560
67             is fixed (either in PowerMock or with a new JUnit release) -->
68         <!-- Used everywhere -->
69         <junit.version>4.11</junit.version>
70         <mockito.version>2.8.9</mockito.version>
71         <lombok.version>1.18.0</lombok.version>
72         <openpojo.version>0.8.10</openpojo.version>
73         <spring.version>4.3.7.RELEASE</spring.version>
74         <javax.validation.version>1.1.0.Final</javax.validation.version>
75         <swagger.version>1.5.21</swagger.version>
76         <yangtools.version>1.2.3</yangtools.version>
77         <yang2swagger.version>1.1.12</yang2swagger.version>
78
79         <!-- ONAP repositories -->
80         <onap.nexus.host>nexus.onap.org</onap.nexus.host>
81         <onap.nexus.port>443</onap.nexus.port>
82         <onap.nexus.protocol>https</onap.nexus.protocol>
83         <onap.nexus.public-url>https://nexus.onap.org/content/groups/public</onap.nexus.public-url>
84         <onap.nexus.staging-url>https://nexus.onap.org/content/groups/staging</onap.nexus.staging-url>
85         <onap.nexus.release-url>https://nexus.onap.org/content/repositories/releases</onap.nexus.release-url>
86         <onap.nexus.snapshot-url>https://nexus.onap.org/content/repositories/snapshots</onap.nexus.snapshot-url>
87         <onap.nexus.staging.server-id>ecomp-staging</onap.nexus.staging.server-id>
88         <onap.nexus.staging.profile-id>176c31dfe190a</onap.nexus.staging.profile-id>
89
90         <!-- Default api name for client -->
91         <api.name>client</api.name>
92
93     </properties>
94
95     <dependencies>
96         <dependency>
97             <groupId>org.mockito</groupId>
98             <artifactId>mockito-core</artifactId>
99             <version>${mockito.version}</version>
100             <scope>test</scope>
101         </dependency>
102         <dependency>
103             <groupId>org.projectlombok</groupId>
104             <artifactId>lombok</artifactId>
105             <version>${lombok.version}</version>
106             <scope>provided</scope>
107         </dependency>
108         <dependency>
109             <groupId>com.openpojo</groupId>
110             <artifactId>openpojo</artifactId>
111             <version>${openpojo.version}</version>
112             <scope>test</scope>
113         </dependency>
114         <dependency>
115             <groupId>junit</groupId>
116             <artifactId>junit</artifactId>
117             <version>${junit.version}</version>
118             <scope>test</scope>
119         </dependency>
120         <dependency>
121             <groupId>org.json</groupId>
122             <artifactId>json</artifactId>
123             <version>${org.json.version}</version>
124         </dependency>
125         <dependency>
126             <groupId>com.fasterxml.jackson.jaxrs</groupId>
127             <artifactId>jackson-jaxrs-base</artifactId>
128             <version>${jackson.version}</version>
129         </dependency>
130         <dependency>
131             <groupId>com.fasterxml.jackson.jaxrs</groupId>
132             <artifactId>jackson-jaxrs-json-provider</artifactId>
133             <version>${jackson.version}</version>
134         </dependency>
135         <dependency>
136             <groupId>com.fasterxml.jackson.datatype</groupId>
137             <artifactId>jackson-datatype-jsr310</artifactId>
138             <version>${jackson.version}</version>
139         </dependency>
140         <dependency>
141             <groupId>com.fasterxml.jackson.dataformat</groupId>
142             <artifactId>jackson-dataformat-xml</artifactId>
143             <version>${jackson.version}</version>
144         </dependency>
145         <dependency>
146             <groupId>com.fasterxml.jackson.core</groupId>
147             <artifactId>jackson-core</artifactId>
148             <version>${jackson.version}</version>
149         </dependency>
150         <dependency>
151             <groupId>com.fasterxml.jackson.core</groupId>
152             <artifactId>jackson-databind</artifactId>
153             <version>${jackson.version}</version>
154         </dependency>
155         <dependency>
156             <groupId>com.fasterxml.jackson.core</groupId>
157             <artifactId>jackson-annotations</artifactId>
158             <version>${jackson.version}</version>
159         </dependency>
160         <dependency>
161             <groupId>com.fasterxml.jackson.module</groupId>
162             <artifactId>jackson-module-jaxb-annotations</artifactId>
163             <version>${jackson.version}</version>
164         </dependency>
165         <dependency>
166             <groupId>org.springframework</groupId>
167             <artifactId>spring-web</artifactId>
168             <version>${spring.version}</version>
169         </dependency>
170         <dependency>
171             <groupId>io.swagger</groupId>
172             <artifactId>swagger-annotations</artifactId>
173             <version>${swagger.version}</version>
174         </dependency>
175         <dependency>
176             <groupId>javax.validation</groupId>
177             <artifactId>validation-api</artifactId>
178             <version>${javax.validation.version}</version>
179         </dependency>
180         <dependency>
181             <groupId>io.swagger</groupId>
182             <artifactId>swagger-jaxrs</artifactId>
183             <version>${swagger.version}</version>
184         </dependency>
185         <dependency>
186             <groupId>io.swagger</groupId>
187             <artifactId>swagger-models</artifactId>
188             <version>${swagger.version}</version>
189         </dependency>
190     </dependencies>
191
192     <repositories>
193         <repository>
194             <id>onap-public</id>
195             <url>https://nexus.onap.org/content/groups/public</url>
196             <releases>
197                 <enabled>true</enabled>
198                 <updatePolicy>never</updatePolicy>
199             </releases>
200             <snapshots>
201                 <enabled>true</enabled>
202                 <updatePolicy>always</updatePolicy>
203             </snapshots>
204         </repository>
205         <repository>
206             <id>onap-staging</id>
207             <url>https://nexus.onap.org/content/groups/staging</url>
208             <releases>
209                 <enabled>true</enabled>
210                 <updatePolicy>never</updatePolicy>
211             </releases>
212             <snapshots>
213                 <enabled>true</enabled>
214                 <updatePolicy>always</updatePolicy>
215             </snapshots>
216         </repository>
217         <repository>
218             <id>ecomp-release</id>
219             <name>onap-repository-releases</name>
220             <url>https://nexus.onap.org/content/repositories/releases</url>
221             <releases>
222                 <enabled>true</enabled>
223                 <updatePolicy>never</updatePolicy>
224             </releases>
225             <snapshots>
226                 <enabled>false</enabled>
227             </snapshots>
228         </repository>
229         <repository>
230             <id>ecomp-snapshot</id>
231             <name>onap-repository-snapshots</name>
232             <url>https://nexus.onap.org/content/repositories/snapshots</url>
233             <releases>
234                 <enabled>false</enabled>
235             </releases>
236             <snapshots>
237                 <enabled>true</enabled>
238             </snapshots>
239         </repository>
240         <repository>
241             <id>opendaylight-mirror</id>
242             <name>opendaylight-mirror</name>
243             <url>https://nexus.opendaylight.org/content/repositories/public/</url>
244             <releases>
245                 <enabled>true</enabled>
246                 <updatePolicy>never</updatePolicy>
247             </releases>
248             <snapshots>
249                 <enabled>false</enabled>
250             </snapshots>
251         </repository>
252         <repository>
253             <id>opendaylight-snapshot</id>
254             <name>opendaylight-snapshot</name>
255             <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
256             <releases>
257                 <enabled>false</enabled>
258             </releases>
259             <snapshots>
260                 <enabled>true</enabled>
261             </snapshots>
262         </repository>
263         <repository>
264             <snapshots>
265                 <enabled>false</enabled>
266             </snapshots>
267             <id>onap-bintray</id>
268             <name>onap-bintray</name>
269             <url>https://nexus.onap.org/content/repositories/bintray/</url>
270         </repository>
271     </repositories>
272     <pluginRepositories>
273         <pluginRepository>
274             <id>onap-public</id>
275             <url>${onap.nexus.public-url}</url>
276             <releases>
277                 <enabled>true</enabled>
278             </releases>
279             <snapshots>
280                 <enabled>true</enabled>
281             </snapshots>
282         </pluginRepository>
283         <pluginRepository>
284             <id>onap-staging</id>
285             <url>${onap.nexus.staging-url}</url>
286             <releases>
287                 <enabled>true</enabled>
288             </releases>
289             <snapshots>
290                 <enabled>true</enabled>
291             </snapshots>
292         </pluginRepository>
293         <pluginRepository>
294             <id>onap-snapshot</id>
295             <url>${onap.nexus.snapshot-url}</url>
296             <releases>
297                 <enabled>false</enabled>
298             </releases>
299             <snapshots>
300                 <enabled>true</enabled>
301             </snapshots>
302         </pluginRepository>
303         <pluginRepository>
304             <id>opendaylight-mirror</id>
305             <name>opendaylight-mirror</name>
306             <url>${opendaylight.nexus.public-url}</url>
307             <releases>
308                 <enabled>true</enabled>
309                 <updatePolicy>never</updatePolicy>
310             </releases>
311             <snapshots>
312                 <enabled>false</enabled>
313             </snapshots>
314         </pluginRepository>
315         <pluginRepository>
316             <id>opendaylight-snapshot</id>
317             <name>opendaylight-snapshot</name>
318             <url>${opendaylight.nexus.snapshot-url}</url>
319             <releases>
320                 <enabled>false</enabled>
321             </releases>
322             <snapshots>
323                 <enabled>true</enabled>
324             </snapshots>
325         </pluginRepository>
326         <!-- Black Duck plugin dependencies -->
327         <pluginRepository>
328             <id>JCenter</id>
329             <name>JCenter Repository</name>
330             <url>http://jcenter.bintray.com</url>
331         </pluginRepository>
332
333         <pluginRepository>
334             <id>Restlet</id>
335             <name>Restlet Repository</name>
336             <url>http://maven.restlet.com</url>
337         </pluginRepository>
338
339         <pluginRepository>
340             <id>onap-bintray</id>
341             <name>onap-bintray</name>
342             <url>https://nexus.onap.org/content/repositories/bintray/</url>
343         </pluginRepository>
344     </pluginRepositories>
345
346     <build>
347         <pluginManagement>
348             <plugins>
349                 <plugin>
350                     <groupId>org.apache.maven.plugins</groupId>
351                     <artifactId>maven-deploy-plugin</artifactId>
352                     <!-- This version supports the "deployAtEnd" parameter -->
353                     <version>2.8</version>
354                     <configuration>
355                         <skip/>
356                         <deployAtEnd>true</deployAtEnd>
357                     </configuration>
358                 </plugin>
359                 <plugin>
360                     <groupId>org.apache.maven.plugins</groupId>
361                     <artifactId>maven-compiler-plugin</artifactId>
362                     <version>${maven.compiler.version}</version>
363                     <configuration>
364                         <source>${java.version.source}</source>
365                         <target>${java.version.target}</target>
366                     </configuration>
367                 </plugin>
368                 <plugin>
369                     <groupId>org.apache.maven.plugins</groupId>
370                     <artifactId>maven-source-plugin</artifactId>
371                     <version>3.0.1</version>
372                     <executions>
373                         <execution>
374                             <id>install-sources</id>
375                             <goals>
376                                 <goal>jar</goal>
377                             </goals>
378                         </execution>
379                         <execution>
380                             <id>deploy-sources</id>
381                             <phase>deploy</phase>
382                             <goals>
383                                 <goal>jar</goal>
384                             </goals>
385                         </execution>
386                     </executions>
387                 </plugin>
388                 <plugin>
389                     <groupId>org.apache.maven.plugins</groupId>
390                     <artifactId>maven-dependency-plugin</artifactId>
391                     <version>2.10</version>
392                     <configuration>
393                         <outputDirectory>${project.build.directory}/dependency</outputDirectory>
394                         <includes>**\/*.yang</includes>
395                     </configuration>
396                     <executions>
397                         <execution>
398                             <id>unpack-shared-resources</id>
399                             <goals>
400                                 <goal>unpack-dependencies</goal>
401                             </goals>
402                             <phase>initialize</phase>
403                         </execution>
404                     </executions>
405                 </plugin>
406                 <plugin>
407                     <artifactId>maven-antrun-plugin</artifactId>
408                     <version>1.8</version>
409                     <executions>
410                         <execution>
411                             <phase>initialize</phase>
412                             <goals>
413                                 <goal>run</goal>
414                             </goals>
415                         </execution>
416                     </executions>
417                     <configuration>
418                         <tasks>
419                             <!-- flatten out structure -->
420                             <move todir="${project.build.directory}/dependency" failonerror="false">
421                                 <fileset dir="${project.build.directory}/dependency"/>
422                                 <mapper type="flatten"/>
423                             </move>
424                             <!-- move to yang folder -->
425                             <copy todir="${project.build.directory}/yang" failonerror="false">
426                                 <fileset dir="${project.build.directory}/dependency" includes="**/*.yang"/>
427                                 <mapper type="flatten"/>
428                             </copy>
429                             <!-- add in hard coded items from src/main/yang -->
430                             <copy todir="${project.build.directory}/yang" failonerror="false">
431                                 <fileset dir="${project.basedir}/src/main/yang" includes="**/*.yang"/>
432                                 <mapper type="flatten"/>
433                             </copy>
434                         </tasks>
435                     </configuration>
436                 </plugin>
437                 <plugin>
438                     <groupId>org.opendaylight.yangtools</groupId>
439                     <artifactId>yang-maven-plugin</artifactId>
440                     <version>${yangtools.version}</version>
441                     <dependencies>
442                         <dependency>
443                             <groupId>com.mrv.yangtools</groupId>
444                             <artifactId>swagger-maven-plugin</artifactId>
445                             <version>${yang2swagger.version}</version>
446                         </dependency>
447                         <dependency>
448                             <groupId>com.fasterxml.jackson.core</groupId>
449                             <artifactId>jackson-core</artifactId>
450                             <version>${jackson.version}</version>
451                         </dependency>
452                     </dependencies>
453                     <executions>
454                         <execution>
455                             <id>binding</id>
456                             <goals>
457                                 <goal>generate-sources</goal>
458                             </goals>
459                             <configuration>
460                                 <codeGenerators>
461                                     <generator>
462                                         <codeGeneratorClass>com.mrv.yangtools.maven.gen.swagger.MavenSwaggerGenerator</codeGeneratorClass>
463                                         <outputBaseDir>${project.build.directory}/generated-sources/swagger-maven-api-gen</outputBaseDir>
464                                         <resourceBaseDir>${project.build.directory}/yang</resourceBaseDir>
465                                         <additionalConfiguration>
466                                             <api-version>${project.version}</api-version>
467                                             <base-module>${api.name}</base-module>
468                                             <swagger-format>yaml</swagger-format>
469                                             <path-format>odl</path-format>
470                                         </additionalConfiguration>
471                                     </generator>
472                                 </codeGenerators>
473                                 <inspectDependencies>false</inspectDependencies>
474                                 <yangFilesRootDir>${project.build.directory}/yang</yangFilesRootDir>
475                             </configuration>
476                         </execution>
477                     </executions>
478                 </plugin>
479                 <plugin>
480                     <groupId>io.swagger</groupId>
481                     <artifactId>swagger-codegen-maven-plugin</artifactId>
482                     <version>2.2.3</version>
483                     <dependencies>
484                         <dependency>
485                             <groupId>com.fasterxml.jackson.core</groupId>
486                             <artifactId>jackson-core</artifactId>
487                             <version>${jackson.version}</version>
488                         </dependency>
489                         <dependency>
490                             <groupId>com.fasterxml.jackson.core</groupId>
491                             <artifactId>jackson-databind</artifactId>
492                             <version>${jackson.version}</version>
493                         </dependency>
494                         <dependency>
495                             <groupId>com.fasterxml.jackson.core</groupId>
496                             <artifactId>jackson-annotations</artifactId>
497                             <version>${jackson.version}</version>
498                         </dependency>
499                         <dependency>
500                             <groupId>com.fasterxml.jackson.module</groupId>
501                             <artifactId>jackson-module-jaxb-annotations</artifactId>
502                             <version>${jackson.version}</version>
503                         </dependency>
504                         <dependency>
505                             <groupId>com.fasterxml.jackson.jaxrs</groupId>
506                             <artifactId>jackson-jaxrs-base</artifactId>
507                             <version>${jackson.version}</version>
508                         </dependency>
509                         <dependency>
510                             <groupId>com.fasterxml.jackson.jaxrs</groupId>
511                             <artifactId>jackson-jaxrs-json-provider</artifactId>
512                             <version>${jackson.version}</version>
513                         </dependency>
514                     </dependencies>
515                     <executions>
516                         <execution>
517                             <goals>
518                                 <goal>generate</goal>
519                             </goals>
520                             <configuration>
521                                 <inputSpec>${project.build.directory}/generated-sources/swagger-maven-api-gen/${api.name}.yaml</inputSpec>
522                                 <language>spring</language>
523                             </configuration>
524                         </execution>
525                     </executions>
526                 </plugin>
527
528             </plugins>
529
530         </pluginManagement>
531         <plugins>
532             <plugin>
533                 <groupId>org.codehaus.mojo</groupId>
534                 <artifactId>versions-maven-plugin</artifactId>
535                 <version>2.5</version>
536                 <configuration>
537                     <processAllModules>true</processAllModules>
538                 </configuration>
539             </plugin>
540             <plugin>
541                 <artifactId>maven-scm-plugin</artifactId>
542                 <version>1.8.1</version>
543                 <configuration>
544                     <tag>${project.artifactId}-${project.version}</tag>
545                 </configuration>
546             </plugin>
547         </plugins>
548     </build>
549 </project>