[LIB-5] Collection empty objects,reporting and serializable
[snooker-score-api.git] / pom.xml
1 <?xml version='1.0' encoding='UTF-8'?>
2
3 <!--
4   ~ Copyright (c) 2017. Developed by Hedgecode.
5   ~
6   ~ Licensed under the Apache License, Version 2.0 (the "License");
7   ~ you may not use this file except in compliance with the License.
8   ~ You may obtain a copy of the License at
9   ~
10   ~   http://www.apache.org/licenses/LICENSE-2.0
11   ~
12   ~ Unless required by applicable law or agreed to in writing, software
13   ~ distributed under the License is distributed on an "AS IS" BASIS,
14   ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   ~ See the License for the specific language governing permissions and
16   ~ limitations under the License.
17   -->
18
19 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
20          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
21     <modelVersion>4.0.0</modelVersion>
22
23     <parent>
24         <groupId>org.hedgecode.maven</groupId>
25         <artifactId>maven-parent</artifactId>
26         <version>1</version>
27     </parent>
28
29     <groupId>org.hedgecode.snooker</groupId>
30     <artifactId>snooker-score-api</artifactId>
31     <version>0.1-SNAPSHOT</version>
32     <packaging>jar</packaging>
33
34     <name>Hedgecode Snooker Score API</name>
35     <description>
36         Hedgecode Snooker Score is an API library for portal snooker.org,
37         which contains the results of snooker competitions and other snooker information.
38         The library provides a set of entity objects that can be used in client
39         applications (to inform about the results of snooker) developed in Java.
40     </description>
41     <inceptionYear>2017</inceptionYear>
42
43     <url>http://lib.hedgecode.org/${project.artifactId}/</url>
44
45     <scm>
46         <connection>scm:svn:http://svn.hedgecode.org/lib/${project.artifactId}/trunk/</connection>
47         <developerConnection>scm:svn:https://svn.hedgecode.org/lib/${project.artifactId}/trunk/</developerConnection>
48         <url>http://svn.hedgecode.org/lib/${project.artifactId}/trunk/</url>
49     </scm>
50
51     <issueManagement>
52         <system>JIRA</system>
53         <url>http://issues.hedgecode.org/browse/${issueKey}/component/${issueComponentId}</url>
54     </issueManagement>
55
56     <distributionManagement>
57         <site>
58             <id>hedgecode.website</id>
59             <name>Hedgecode Libs Website</name>
60             <url>dav:https://hedgecode.org/libs/${project.artifactId}/</url>
61         </site>
62     </distributionManagement>
63
64     <properties>
65         <javaVersion>8</javaVersion>
66         <maven.compiler.source>1.${javaVersion}</maven.compiler.source>
67         <maven.compiler.target>1.${javaVersion}</maven.compiler.target>
68         <gsonVersion>2.8.0</gsonVersion>
69         <junitVersion>4.8.2</junitVersion>
70         <mavenDependencyPluginVersion>2.8</mavenDependencyPluginVersion>
71         <mavenJarPluginVersion>2.5</mavenJarPluginVersion>
72         <mavenAssemblyPluginVersion>2.4.1</mavenAssemblyPluginVersion>
73         <mavenReleasePluginVersion>2.5.3</mavenReleasePluginVersion>
74         <mavenPluginToolsVersion>3.4</mavenPluginToolsVersion>
75         <mavenReportsPluginVersion>2.8.1</mavenReportsPluginVersion>
76         <mavenFindBugsPluginVersion>3.0.4</mavenFindBugsPluginVersion>
77         <wagonWebDavVersion>2.7</wagonWebDavVersion>
78         <issueComponentId>10012</issueComponentId>
79         <issueKey>LIB</issueKey>
80         <issueNumber>5</issueNumber>
81     </properties>
82
83     <dependencies>
84         <dependency>
85             <groupId>com.google.code.gson</groupId>
86             <artifactId>gson</artifactId>
87             <version>${gsonVersion}</version>
88         </dependency>
89         <dependency>
90             <groupId>junit</groupId>
91             <artifactId>junit</artifactId>
92             <version>${junitVersion}</version>
93             <scope>test</scope>
94         </dependency>
95     </dependencies>
96
97     <build>
98         <plugins>
99             <plugin>
100                 <groupId>org.apache.maven.plugins</groupId>
101                 <artifactId>maven-dependency-plugin</artifactId>
102                 <version>${mavenDependencyPluginVersion}</version>
103                 <executions>
104                     <execution>
105                         <id>copy-dependencies</id>
106                         <phase>prepare-package</phase>
107                         <goals>
108                             <goal>copy-dependencies</goal>
109                         </goals>
110                         <configuration>
111                             <outputDirectory>${project.build.directory}/lib</outputDirectory>
112                             <overWriteReleases>false</overWriteReleases>
113                             <overWriteSnapshots>false</overWriteSnapshots>
114                             <overWriteIfNewer>true</overWriteIfNewer>
115                         </configuration>
116                     </execution>
117                 </executions>
118             </plugin>
119             <plugin>
120                 <groupId>org.apache.maven.plugins</groupId>
121                 <artifactId>maven-jar-plugin</artifactId>
122                 <version>${mavenJarPluginVersion}</version>
123                 <configuration>
124                     <archive>
125                         <manifest>
126                             <addClasspath>true</addClasspath>
127                             <classpathPrefix>lib/</classpathPrefix>
128                             <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
129                             <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
130                             <mainClass>org.hedgecode.snooker.SnookerScoreApp</mainClass>
131                         </manifest>
132                         <manifestEntries>
133                             <Implementation-Title>${project.artifactId}</Implementation-Title>
134                         </manifestEntries>
135                     </archive>
136                 </configuration>
137             </plugin>
138             <plugin>
139                 <groupId>org.apache.maven.plugins</groupId>
140                 <artifactId>maven-release-plugin</artifactId>
141                 <version>${mavenReleasePluginVersion}</version>
142                 <configuration>
143                     <tagBase>https://svn.hedgecode.org/lib/${project.artifactId}/tags</tagBase>
144                     <branchBase>https://svn.hedgecode.org/lib/${project.artifactId}/branches</branchBase>
145                     <preparationGoals>clean install</preparationGoals>
146                     <goals>deploy</goals>
147                     <releaseProfiles>release</releaseProfiles>
148                     <scmCommentPrefix xml:space="preserve">[${issueKey}-${issueNumber}] </scmCommentPrefix>
149                 </configuration>
150             </plugin>
151             <plugin>
152                 <groupId>org.apache.maven.plugins</groupId>
153                 <artifactId>maven-site-plugin</artifactId>
154                 <version>${mavenPluginToolsVersion}</version>
155                 <configuration>
156                     <locales>en,ru</locales>
157                 </configuration>
158                 <dependencies>
159                     <dependency>
160                         <groupId>org.apache.maven.wagon</groupId>
161                         <artifactId>wagon-webdav-jackrabbit</artifactId>
162                         <version>${wagonWebDavVersion}</version>
163                     </dependency>
164                 </dependencies>
165             </plugin>
166         </plugins>
167     </build>
168
169     <reporting>
170         <plugins>
171             <plugin>
172                 <groupId>org.apache.maven.plugins</groupId>
173                 <artifactId>maven-project-info-reports-plugin</artifactId>
174                 <version>${mavenReportsPluginVersion}</version>
175                 <configuration>
176                     <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
177                 </configuration>
178                 <reportSets>
179                     <reportSet>
180                         <reports>
181                             <report>index</report>
182                             <report>summary</report>
183                             <report>dependency-info</report>
184                             <report>project-team</report>
185                             <report>scm</report>
186                             <report>dependency-management</report>
187                             <report>dependencies</report>
188                             <report>plugin-management</report>
189                             <report>plugins</report>
190                             <report>distribution-management</report>
191                         </reports>
192                     </reportSet>
193                 </reportSets>
194             </plugin>
195         </plugins>
196     </reporting>
197
198     <profiles>
199         <profile>
200             <id>jar-with-dependencies</id>
201             <build>
202                 <plugins>
203                     <plugin>
204                         <groupId>org.apache.maven.plugins</groupId>
205                         <artifactId>maven-assembly-plugin</artifactId>
206                         <version>${mavenAssemblyPluginVersion}</version>
207                         <configuration>
208                             <archive>
209                                 <manifest>
210                                     <addClasspath>true</addClasspath>
211                                     <classpathPrefix>lib/</classpathPrefix>
212                                     <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
213                                     <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
214                                     <mainClass>org.hedgecode.snooker.SnookerScoreApp</mainClass>
215                                 </manifest>
216                                 <manifestEntries>
217                                     <Implementation-Title>${project.artifactId}</Implementation-Title>
218                                 </manifestEntries>
219                             </archive>
220                             <descriptorRefs>
221                                 <descriptorRef>jar-with-dependencies</descriptorRef>
222                             </descriptorRefs>
223                         </configuration>
224                         <executions>
225                             <execution>
226                                 <id>make-assembly</id>
227                                 <phase>package</phase>
228                                 <goals>
229                                     <goal>single</goal>
230                                 </goals>
231                             </execution>
232                         </executions>
233                     </plugin>
234                 </plugins>
235             </build>
236         </profile>
237         <profile>
238             <id>reporting</id>
239             <reporting>
240                 <plugins>
241                     <plugin>
242                         <groupId>org.apache.maven.plugins</groupId>
243                         <artifactId>maven-project-info-reports-plugin</artifactId>
244                         <version>${mavenReportsPluginVersion}</version>
245                     </plugin>
246                     <plugin>
247                         <groupId>org.apache.maven.plugins</groupId>
248                         <artifactId>maven-javadoc-plugin</artifactId>
249                         <configuration>
250                             <notimestamp>true</notimestamp>
251                             <quiet>true</quiet>
252                             <sourceFileExcludes>
253                                 <exclude>org//hedgecode/snooker/cache/assign/*.java</exclude>
254                                 <exclude>org//hedgecode/snooker/compare/*.java</exclude>
255                                 <exclude>org//hedgecode/snooker/gson/*.java</exclude>
256                                 <exclude>org//hedgecode/snooker/json/*.java</exclude>
257                                 <exclude>org//hedgecode/snooker/request/*.java</exclude>
258                             </sourceFileExcludes>
259                         </configuration>
260                         <reportSets>
261                             <reportSet>
262                                 <id>default</id>
263                                 <reports>
264                                     <report>javadoc</report>
265                                 </reports>
266                             </reportSet>
267                         </reportSets>
268                     </plugin>
269                     <plugin>
270                         <groupId>org.codehaus.mojo</groupId>
271                         <artifactId>findbugs-maven-plugin</artifactId>
272                         <version>${mavenFindBugsPluginVersion}</version>
273                     </plugin>
274                 </plugins>
275             </reporting>
276         </profile>
277     </profiles>
278
279 </project>