1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- vi: set et smarttab sw=2 tabstop=2: -->
4 Copyright (c) 2015 The Linux Foundation and others. All rights reserved.
6 This program and the accompanying materials are made available under the
7 terms of the Eclipse Public License v1.0 which accompanies this distribution,
8 and is available at http://www.eclipse.org/legal/epl-v10.html
10 <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">
11 <modelVersion>4.0.0</modelVersion>
14 Note: This parent is not meant to be used by code artifacts. Please use
18 <groupId>org.opendaylight.odlparent</groupId>
19 <artifactId>odlparent-lite</artifactId>
20 <version>1.8.2-SNAPSHOT</version>
21 <packaging>pom</packaging>
22 <name>ODL :: odlparent :: ${project.artifactId}</name>
24 <!-- Sufficient Metadata for Maven Central Repository deployment
25 These are default, some of which project inheriting from this POM may override (but don't have to, typically)
26 see http://central.sonatype.org/pages/requirements.html
28 <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
29 <description>OpenDaylight is leading the transformation to Open Software Defined Networking (SDN). For more information, please see https://www.opendaylight.org</description>
33 <name>Eclipse Public License v1.0</name>
34 <url>https://www.eclipse.org/legal/epl-v10.html</url>
39 <name>OpenDaylight</name>
40 <url>https://www.opendaylight.org</url>
44 <system>Bugzilla</system>
45 <url>https://bugs.opendaylight.org/</url>
49 <system>Jenkins</system>
50 <url>https://jenkins.opendaylight.org/releng/</url>
54 <url>https://git.opendaylight.org/gerrit/</url>
60 <name>Please consult the PROJECT_INFO.yaml, README* and/or CONTRIBUTORS which should be included with this JAR</name>
61 <url>https://www.opendaylight.org</url>
62 <email>helpdesk@opendaylight.org</email>
67 <!-- This is only used to prevent building with Maven < 3 and to appease
68 maven-dependency-plugin; our real Maven requirement is enforced by
69 the enforcer plugin. -->
74 <nexusproxy>https://nexus.opendaylight.org/content</nexusproxy>
76 <!-- Variables required for Maven Site generation -->
77 <nexus.site.url>file:${user.dir}/target/staged-site</nexus.site.url>
78 <odl.site.url>https://nexus.opendaylight.org/content/sites/site/</odl.site.url>
79 <stream>latest</stream><!-- CI should pass in -Dstream={stream} -->
81 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
82 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
84 <!-- This property is used in the pluginManagement and the q profile as well as -D set e.g. in releng/builder by c/53426
85 to emulate a future "maven.gitcommitid.skip", which only a future not-yet-available-on-Maven-central maven-git-commit-id-plugin release has.
86 (If we ever upgrade the version of the maven-git-commit-id-plugin we use, then this and re. pluginManagement config could be removed; BUT then
87 the q profile and all -D in releng/builder etc. else would have to be changed from this "gitid.skip" to "maven.gitcommitid.skip.)
89 <gitid.skip>false</gitid.skip>
96 <artifactId>maven-clean-plugin</artifactId>
97 <version>3.0.0</version>
100 <artifactId>maven-deploy-plugin</artifactId>
101 <version>2.8.2</version>
104 <artifactId>maven-help-plugin</artifactId>
105 <version>2.2</version>
108 <artifactId>maven-install-plugin</artifactId>
109 <version>2.5.2</version>
112 <artifactId>maven-javadoc-plugin</artifactId>
113 <version>2.10.4</version>
115 <!-- Keep things quiet except for warnings/errors -->
118 <!-- support for HelpMojo generated by the maven-plugin-plugin -->
121 <placement>t</placement>
125 <name>requiresProject</name>
126 <placement>t</placement>
127 <head>Requires project:</head>
130 <name>threadSafe</name>
131 <placement>t</placement>
132 <head>Threadsafe</head>
136 <placement>t</placement>
139 <!-- end HelpMojo support -->
144 <id>attach-javadocs</id>
152 <artifactId>maven-project-info-reports-plugin</artifactId>
153 <version>2.9</version>
156 <artifactId>maven-release-plugin</artifactId>
157 <version>2.5.3</version>
160 <artifactId>maven-site-plugin</artifactId>
161 <version>3.6</version>
165 <imagesdir>./images</imagesdir>
166 <imagesoutdir>${project.build.directory}/site/images</imagesoutdir>
168 <source-highlighter>coderay</source-highlighter>
169 <coderay-css>style</coderay-css>
172 <require>asciidoctor-diagram</require>
178 <!-- Downgrade Velocity; the Asciidoctor templates don't work with Velocity 1.7 -->
179 <!-- See https://maven.apache.org/plugins/maven-site-plugin/migrate.html -->
180 <groupId>org.apache.velocity</groupId>
181 <artifactId>velocity</artifactId>
182 <version>1.5</version>
185 <groupId>org.apache.maven.doxia</groupId>
186 <artifactId>doxia-core</artifactId>
187 <version>1.7</version>
190 <groupId>org.asciidoctor</groupId>
191 <artifactId>asciidoctor-maven-plugin</artifactId>
192 <version>1.5.3</version>
195 <groupId>org.asciidoctor</groupId>
196 <artifactId>asciidoctorj-diagram</artifactId>
197 <version>1.3.1</version>
200 <!-- Needed for JDK-9 compatibility -->
202 <groupId>commons-lang</groupId>
203 <artifactId>commons-lang</artifactId>
204 <version>2.6</version>
209 <groupId>org.codehaus.mojo</groupId>
210 <artifactId>exec-maven-plugin</artifactId>
211 <version>1.5.0</version>
214 <groupId>org.codehaus.mojo</groupId>
215 <artifactId>jdepend-maven-plugin</artifactId>
216 <version>2.0</version>
221 <goal>generate-no-fork</goal>
226 <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
228 <groupId>org.eclipse.m2e</groupId>
229 <artifactId>lifecycle-mapping</artifactId>
230 <version>1.0.0</version>
232 <lifecycleMappingMetadata>
235 <pluginExecutionFilter>
236 <groupId>pl.project13.maven</groupId>
237 <artifactId>git-commit-id-plugin</artifactId>
238 <versionRange>[1,)</versionRange>
240 <goal>revision</goal>
242 </pluginExecutionFilter>
248 <pluginExecutionFilter>
249 <groupId>org.apache.maven.plugins</groupId>
250 <artifactId>maven-dependency-plugin</artifactId>
251 <versionRange>[2.10,)</versionRange>
255 </pluginExecutionFilter>
261 <pluginExecutionFilter>
262 <groupId>org.apache.maven.plugins</groupId>
263 <artifactId>maven-enforcer-plugin</artifactId>
264 <versionRange>[1.0.0,)</versionRange>
268 </pluginExecutionFilter>
274 </lifecycleMappingMetadata>
282 <artifactId>maven-enforcer-plugin</artifactId>
283 <version>1.4.1</version>
286 <id>enforce-maven</id>
290 <version>1.8.0</version>
291 </requireJavaVersion>
292 <requireMavenVersion>
293 <version>[3.3.9,)</version>
294 </requireMavenVersion>
304 <groupId>pl.project13.maven</groupId>
305 <artifactId>git-commit-id-plugin</artifactId>
306 <version>2.2.1</version>
309 <id>get-git-infos</id>
311 <goal>revision</goal>
316 <skip>${gitid.skip}</skip>
317 <failOnNoGitDirectory>false</failOnNoGitDirectory>
318 <generateGitPropertiesFile>true</generateGitPropertiesFile>
319 <generateGitPropertiesFilename>${project.build.outputDirectory}/META-INF/git.properties</generateGitPropertiesFilename>
322 <always>true</always>
335 <name>m2e.version</name>
339 <!-- Put the IDE's build output in a folder other than target, so that IDE builds don't interact with Maven builds -->
340 <directory>target-ide</directory>
344 <!-- http://blog2.vorburger.ch/2016/06/improve-maven-build-speed-with-q.html
345 q = http://memory-alpha.wikia.com/wiki/Q ;)
347 The Quick profile is used during incremental local development, when you want to "just get that JAR built",
348 which is very handy e.g. for fast hot reloading cycles in Karaf with bundle watch. It (intentionally!) skips
349 tests, quality checks etc. which are great and useful to run before finally submitting changes to Gerrit, and
350 which all must run on Gerrit, but which are overhead during ongoing fast iterative local development.
352 Note that the idea here is that your IDE will already have run quality checks such as e.g. Checkstyle
353 while you typed the code anyway. Similarly, if you wrote a test, you'll probably already have compiled and run it
354 from your IDE, so when you want the OSGi bundle JAR for Karaf, ASAP, you typically don't want all that to run again.
358 <skipTests>true</skipTests>
359 <!-- But NOT <maven.test.skip>true, as that's for compiling, not running, tests;
360 and that's usually quick. Skipping test compilation with -Pq with maven.test.skip would be
361 particularly confusing when used in a project with maven-jar-plugin <goal>test-jar, so don't.) -->
362 <skipIT>true</skipIT>
363 <skipITs>true</skipITs>
364 <skip.karaf.featureTest>true</skip.karaf.featureTest>
365 <skip.karaf4.featureTest>true</skip.karaf4.featureTest>
366 <jacoco.skip>true</jacoco.skip>
367 <maven.javadoc.skip>true</maven.javadoc.skip>
368 <maven.source.skip>true</maven.source.skip>
369 <checkstyle.skip>true</checkstyle.skip>
370 <findbugs.skip>true</findbugs.skip>
371 <pmd.skip>true</pmd.skip>
372 <cpd.skip>true</cpd.skip>
373 <maven.site.skip>true</maven.site.skip>
374 <invoker.skip>true</invoker.skip>
375 <enforcer.skip>true</enforcer.skip>
376 <mdsal.skip.verbose>true</mdsal.skip.verbose> <!-- Bug 6236 -->
377 <gitid.skip>true</gitid.skip>
381 <!-- http://blog2.vorburger.ch/2016/06/maven-install-into-additional.html
382 mvn [-o -Pq] install -DaddInstallRepositoryPath=.../karaf/system is used in development to directly
383 install artifacts such as bundles and KARs not just into the global shared ~/.m2/repository
384 but also into the isolated Maven repo of a Karaf distribution.
388 <name>addInstallRepositoryPath</name>
394 <artifactId>maven-install-plugin</artifactId>
397 <id>additional-install</id>
398 <phase>install</phase>
400 <goal>install-file</goal>
403 <file>${project.build.directory}/${project.build.finalName}.jar</file>
404 <localRepositoryPath>${addInstallRepositoryPath}</localRepositoryPath>
414 This profile is to ensure we only build javadocs reports
415 when we plan to deploy Maven site for our project.
417 It activates by checking for the existance of deploy-site.xml in the
418 user's current working directory. (Intent is that this is run from
419 the Project root directory)
424 <exists>${user.dir}/deploy-site.xml</exists>
431 <artifactId>maven-site-plugin</artifactId>
435 <id>generate-site</id>
436 <phase>install</phase>
439 <goal>attach-descriptor</goal>
450 <artifactId>maven-project-info-reports-plugin</artifactId>
452 <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
457 <report>index</report>
463 <artifactId>maven-javadoc-plugin</artifactId>
467 <report>javadoc-no-fork</report>
468 <report>test-javadoc-no-fork</report>
478 <distributionManagement>
480 <id>opendaylight-release</id>
481 <url>${nexusproxy}/repositories/opendaylight.release/</url>
484 <id>opendaylight-snapshot</id>
485 <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
486 </snapshotRepository>
488 <id>opendaylight-site</id>
489 <url>${nexus.site.url}/${project.artifactId}/</url>
491 </distributionManagement>