Bring some reliability in the eclipse and maven mixed builds
[controller.git] / opendaylight / md-sal / pom.xml
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2     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     <groupId>org.opendaylight.controller</groupId>
5     <artifactId>sal-parent</artifactId>
6     <version>1.0-SNAPSHOT</version>
7     <packaging>pom</packaging>
8     <scm>
9         <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
10         <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
11         <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
12     </scm>
13
14     <modules>
15         <!--  Common APIs & Implementation -->
16         <module>sal-common</module>
17         <module>sal-common-api</module>
18         <module>sal-common-impl</module>
19         <module>sal-common-util</module>
20
21         <!-- Binding Independent -->
22         <module>sal-dom-api</module>
23         <module>sal-dom-broker</module>
24         <module>sal-dom-spi</module>
25
26         <!-- Binding Aware -->
27         <module>sal-binding-api</module>
28         <module>sal-binding-config</module>
29         <module>sal-binding-broker</module>
30
31         <module>sal-binding-util</module>
32
33         <!-- Samples -->
34         <module>samples</module>
35
36         <!-- Base Models -->
37         <module>model</module>
38
39
40         <!-- Connectors -->
41         <module>sal-connector-api</module>
42         <module>sal-rest-connector</module>
43
44         <!-- Clustered Data Store -->
45         <module>clustered-data-store/implementation</module>
46
47         <module>inventory-manager</module>
48         <!-- Compability Packages -->
49         <module>compatibility</module>
50
51         <module>sal-zeromq-connector</module>
52     </modules>
53
54
55     <profiles>
56         <profile>
57            <id>integrationtests</id>
58            <activation>
59                <activeByDefault>false</activeByDefault>
60            </activation>
61             <modules>
62                 <module>sal-binding-it</module>
63                 <module>clustered-data-store/integrationtest</module>
64                 <module>test</module>
65             </modules>
66         </profile>
67         <profile>
68           <id>IDE</id>
69           <activation>
70             <property>
71               <name>m2e.version</name>
72             </property>
73           </activation>
74           <build>
75             <!-- Put the IDE's build output in a folder other than target, so that IDE builds don't interact with Maven builds -->
76             <directory>target-ide</directory>
77           </build>
78         </profile>
79     </profiles>
80
81     <properties>
82         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
83         <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
84         <!-- Java Versions -->
85         <maven.compiler.source>1.7</maven.compiler.source>
86         <maven.compiler.target>1.7</maven.compiler.target>
87
88         <!-- Plugin Versions -->
89         <bundle.plugin.version>2.4.0</bundle.plugin.version>
90         <releaseplugin.version>2.3.2</releaseplugin.version>
91
92         <!-- Dependency Versions -->
93         <slf4j.version>1.7.2</slf4j.version>
94         <yang.version>0.5.9-SNAPSHOT</yang.version>
95         <yang.binding.version>0.6.0-SNAPSHOT</yang.binding.version>
96         <yang.codegen.version>0.6.0-SNAPSHOT</yang.codegen.version>
97         <guava.version>14.0.1</guava.version>
98         <osgi.core.version>5.0.0</osgi.core.version>
99         <junit.version>4.8.1</junit.version>
100         <xtend.version>2.4.3</xtend.version>
101         <maven.clean.plugin.version>2.5</maven.clean.plugin.version>
102         <jacoco.version>0.5.3.201107060350</jacoco.version>
103         <!-- Sonar properties using jacoco to retrieve integration test results -->
104         <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
105         <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
106         <sonar.jacoco.Reportpath>target/jacoco.exec</sonar.jacoco.Reportpath>
107         <sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
108         <sonar.host.url>https://sonar.opendaylight.org/</sonar.host.url>
109         <sonar.branch>${user.name}-private-view</sonar.branch>
110         <sonar.language>java</sonar.language>
111     </properties>
112
113     <pluginRepositories>
114         <!-- OpenDayLight Repo Mirror -->
115         <pluginRepository>
116           <id>opendaylight-mirror</id>
117           <name>opendaylight-mirror</name>
118           <url>${nexusproxy}/groups/public/</url>
119           <snapshots>
120               <enabled>false</enabled>
121           </snapshots>
122           <releases>
123               <enabled>true</enabled>
124               <updatePolicy>never</updatePolicy>
125           </releases>
126         </pluginRepository>
127         <!-- OpenDayLight Snapshot artifact -->
128         <pluginRepository>
129           <id>opendaylight-snapshot</id>
130           <name>opendaylight-snapshot</name>
131           <url> ${nexusproxy}/repositories/opendaylight.snapshot/</url>
132           <snapshots>
133               <enabled>true</enabled>
134           </snapshots>
135           <releases>
136               <enabled>false</enabled>
137           </releases>
138         </pluginRepository>
139     </pluginRepositories>
140
141
142     <repositories>
143         <!-- OpenDayLight Repo Mirror -->
144         <repository>
145           <id>opendaylight-mirror</id>
146           <name>opendaylight-mirror</name>
147           <url>${nexusproxy}/groups/public/</url>
148           <snapshots>
149               <enabled>false</enabled>
150           </snapshots>
151           <releases>
152               <enabled>true</enabled>
153               <updatePolicy>never</updatePolicy>
154           </releases>
155         </repository>
156         <!-- OpenDayLight Snapshot artifact -->
157         <repository>
158           <id>opendaylight-snapshot</id>
159           <name>opendaylight-snapshot</name>
160           <url> ${nexusproxy}/repositories/opendaylight.snapshot/</url>
161           <snapshots>
162               <enabled>true</enabled>
163           </snapshots>
164           <releases>
165               <enabled>false</enabled>
166           </releases>
167         </repository>
168     </repositories>
169
170     <distributionManagement>
171         <!-- OpenDayLight Released artifact -->
172         <repository>
173             <id>opendaylight-release</id>
174             <url>${nexusproxy}/repositories/opendaylight.release/</url>
175         </repository>
176         <!-- OpenDayLight Snapshot artifact -->
177         <snapshotRepository>
178             <id>opendaylight-snapshot</id>
179             <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
180         </snapshotRepository>
181         <!-- Site deployment -->
182         <site>
183             <id>website</id>
184             <url>${sitedeploy}</url>
185         </site>
186     </distributionManagement>
187
188
189     <dependencyManagement>
190         <dependencies>
191
192
193
194
195             <!-- YANG Tools Dependencies -->
196             <dependency>
197                 <groupId>org.opendaylight.yangtools</groupId>
198                 <artifactId>yang-binding</artifactId>
199                 <version>${yang.binding.version}</version>
200             </dependency>
201             <dependency>
202                 <groupId>org.opendaylight.yangtools</groupId>
203                 <artifactId>yang-common</artifactId>
204                 <version>${yang.version}</version>
205             </dependency>
206             <dependency>
207                 <groupId>org.opendaylight.yangtools</groupId>
208                 <artifactId>yang-data-api</artifactId>
209                 <version>${yang.version}</version>
210             </dependency>
211             <dependency>
212                 <groupId>org.opendaylight.yangtools</groupId>
213                 <artifactId>yang-model-api</artifactId>
214                 <version>${yang.version}</version>
215             </dependency>
216             <dependency>
217                 <groupId>org.opendaylight.yangtools</groupId>
218                 <artifactId>yang-data-util</artifactId>
219                 <version>${yang.version}</version>
220             </dependency>
221             <!-- SAL Dependencies -->
222             <dependency>
223                 <groupId>${project.groupId}</groupId>
224                 <artifactId>sal-connector-api</artifactId>
225                 <version>${project.version}</version>
226             </dependency>
227
228             <!-- Supporting Libraries -->
229             <dependency>
230                 <groupId>org.slf4j</groupId>
231                 <artifactId>slf4j-api</artifactId>
232                 <version>${slf4j.version}</version>
233             </dependency>
234             <dependency>
235                 <groupId>com.google.guava</groupId>
236                 <artifactId>guava</artifactId>
237                 <version>${guava.version}</version>
238             </dependency>
239             <dependency>
240                 <groupId>org.eclipse.xtend</groupId>
241                 <artifactId>org.eclipse.xtend.lib</artifactId>
242                 <version>${xtend.version}</version>
243             </dependency>
244
245             <!-- Testing Dependencies -->
246             <dependency>
247                 <groupId>junit</groupId>
248                 <artifactId>junit</artifactId>
249                 <version>${junit.version}</version>
250                 <scope>test</scope>
251             </dependency>
252             <dependency>
253                 <groupId>org.mockito</groupId>
254                 <artifactId>mockito-all</artifactId>
255                 <version>1.9.5</version>
256                 <scope>test</scope>
257             </dependency>
258         </dependencies>
259     </dependencyManagement>
260     <build>
261         <pluginManagement>
262             <plugins>
263                 <plugin>
264                     <groupId>org.apache.maven.plugins</groupId>
265                     <artifactId>maven-release-plugin</artifactId>
266                     <version>${releaseplugin.version}</version>
267                 </plugin>
268                 <plugin>
269                     <groupId>org.apache.felix</groupId>
270                     <artifactId>maven-bundle-plugin</artifactId>
271                     <version>${bundle.plugin.version}</version>
272                     <extensions>true</extensions>
273                     <!--executions>
274                         <execution>
275                             <id>bundle-manifest</id>
276                             <phase>process-classes</phase>
277                             <goals>
278                                 <goal>manifest</goal>
279                             </goals>
280                         </execution>
281                     </executions-->
282                     <configuration>
283                         <instructions>
284                             <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
285                         </instructions>
286                         <manifestLocation>${project.basedir}/META-INF</manifestLocation>
287                     </configuration>
288                 </plugin>
289                 <plugin>
290                     <groupId>org.eclipse.xtend</groupId>
291                     <artifactId>xtend-maven-plugin</artifactId>
292                     <version>${xtend.version}</version>
293                     <executions>
294                         <execution>
295                             <goals>
296                                 <goal>compile</goal>
297                             </goals>
298                             <configuration>
299                                 <outputDirectory>${basedir}/src/main/xtend-gen</outputDirectory>
300                             </configuration>
301                         </execution>
302                     </executions>
303                 </plugin>
304                 <plugin>
305                     <artifactId>maven-clean-plugin</artifactId>
306                     <version>${maven.clean.plugin.version}</version>
307                     <configuration>
308                         <filesets>
309                             <fileset>
310                                 <directory>${basedir}/src/main/xtend-gen</directory>
311                                 <includes>
312                                     <include>**</include>
313                                 </includes>
314                             </fileset>
315                         </filesets>
316                     </configuration>
317                 </plugin>
318                 <plugin>
319                     <groupId>org.jacoco</groupId>
320                     <artifactId>jacoco-maven-plugin</artifactId>
321                     <version>${jacoco.version}</version>
322                 </plugin>
323                 <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
324                 <plugin>
325                     <groupId>org.eclipse.m2e</groupId>
326                     <artifactId>lifecycle-mapping</artifactId>
327                     <version>1.0.0</version>
328                     <configuration>
329                         <lifecycleMappingMetadata>
330                             <pluginExecutions>
331                                 <pluginExecution>
332                                     <pluginExecutionFilter>
333                                         <groupId>org.opendaylight.yangtools</groupId>
334                                         <artifactId>yang-maven-plugin</artifactId>
335                                         <versionRange>[0,)</versionRange>
336                                         <goals>
337                                             <goal>generate-sources</goal>
338                                         </goals>
339                                     </pluginExecutionFilter>
340                                     <action>
341                                         <ignore/>
342                                     </action>
343                                 </pluginExecution>
344                                 <pluginExecution>
345                                     <pluginExecutionFilter>
346                                         <groupId>net.alchim31.maven</groupId>
347                                         <artifactId>scala-maven-plugin</artifactId>
348                                         <versionRange>[0,)</versionRange>
349                                         <goals>
350                                             <goal>compile</goal>
351                                             <goal>testCompile</goal>
352                                         </goals>
353                                     </pluginExecutionFilter>
354                                     <action>
355                                       <ignore/>
356                                     </action>
357                                 </pluginExecution>
358                                 <pluginExecution>
359                                     <pluginExecutionFilter>
360                                         <groupId>org.jacoco</groupId>
361                                         <artifactId>jacoco-maven-plugin</artifactId>
362                                         <versionRange>[0,)</versionRange>
363                                         <goals>
364                                             <goal>prepare-agent</goal>
365                                         </goals>
366                                     </pluginExecutionFilter>
367                                     <action>
368                                         <ignore/>
369                                     </action>
370                                 </pluginExecution>
371                             </pluginExecutions>
372                         </lifecycleMappingMetadata>
373                     </configuration>
374                 </plugin>
375             </plugins>
376
377         </pluginManagement>
378         <plugins>
379             <plugin>
380                 <groupId>org.apache.felix</groupId>
381                 <artifactId>maven-bundle-plugin</artifactId>
382             </plugin>
383             <plugin>
384                 <groupId>org.apache.maven.plugins</groupId>
385                 <artifactId>maven-jar-plugin</artifactId>
386                 <version>2.4</version>
387             </plugin>
388             <plugin>
389                 <groupId>org.apache.maven.plugins</groupId>
390                 <artifactId>maven-javadoc-plugin</artifactId>
391                 <version>2.8.1</version>
392                 <configuration>
393                     <stylesheet>maven</stylesheet>
394                     <failOnError>false</failOnError>
395                 </configuration>
396                 <executions>
397                     <execution>
398                         <goals>
399                             <goal>aggregate</goal>
400                         </goals>
401                         <phase>site</phase>
402                     </execution>
403                 </executions>
404             </plugin>
405         </plugins>
406     </build>
407     <reporting>
408         <plugins>
409             <plugin>
410                 <groupId>org.codehaus.mojo</groupId>
411                 <artifactId>findbugs-maven-plugin</artifactId>
412                 <version>2.4.0</version>
413                 <configuration>
414                     <effort>Max</effort>
415                     <threshold>Low</threshold>
416                     <goal>site</goal>
417                 </configuration>
418             </plugin>
419             <plugin>
420                 <groupId>org.codehaus.mojo</groupId>
421                 <artifactId>jdepend-maven-plugin</artifactId>
422                 <version>2.0-beta-2</version>
423             </plugin>
424         </plugins>
425     </reporting>
426 </project>