1<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/maven-v4_0_0.xsd">
2    <modelVersion>4.0.0</modelVersion>
3    <groupId>org.yaml</groupId>
4    <artifactId>snakeyaml</artifactId>
5    <version>1.18-SNAPSHOT</version>
6    <packaging>bundle</packaging>
7    <properties>
8        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
9        <project.scm.id>bitbucket</project.scm.id>
10        <release.repo.url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</release.repo.url>
11        <snapshot.repo.url>https://oss.sonatype.org/content/repositories/snapshots/</snapshot.repo.url>
12        <maven.compiler.source>1.6</maven.compiler.source>
13        <maven.compiler.target>1.6</maven.compiler.target>
14        <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
15    </properties>
16    <name>SnakeYAML</name>
17    <description>YAML 1.1 parser and emitter for Java</description>
18    <inceptionYear>2008</inceptionYear>
19    <url>http://www.snakeyaml.org</url>
20    <issueManagement>
21        <system>Bitbucket</system>
22        <url>https://bitbucket.org/asomov/snakeyaml/issues</url>
23    </issueManagement>
24    <!--ciManagement>
25        <system>jenkins</system>
26        <url>https://snakeyaml.ci.cloudbees.com/job/SnakeYAML/</url>
27    </ciManagement-->
28    <mailingLists>
29        <mailingList>
30            <name>SnakeYAML developers and users List</name>
31            <post>snakeyaml-core@googlegroups.com</post>
32        </mailingList>
33    </mailingLists>
34    <scm>
35        <connection>scm:hg:http://bitbucket.org/asomov/snakeyaml</connection>
36        <developerConnection>scm:hg:ssh://hg@bitbucket.org/asomov/snakeyaml</developerConnection>
37        <url>https://bitbucket.org/asomov/snakeyaml/src</url>
38      <tag>HEAD</tag>
39  </scm>
40    <licenses>
41        <license>
42            <name>Apache License, Version 2.0</name>
43            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
44            <distribution>repo</distribution>
45        </license>
46    </licenses>
47    <developers>
48        <developer>
49            <id>asomov</id>
50            <name>Andrey Somov</name>
51            <email>public.somov@gmail.com</email>
52        </developer>
53        <developer>
54            <id>maslovalex</id>
55            <name>Alexander Maslov</name>
56            <email>alexander.maslov@gmail.com</email>
57        </developer>
58        <developer>
59            <id>Jordan</id>
60            <name>Jordan Angold</name>
61            <email>jordanangold@gmail.com</email>
62        </developer>
63    </developers>
64    <prerequisites>
65        <maven>3.0.5</maven>
66    </prerequisites>
67    <dependencies>
68        <dependency>
69            <groupId>junit</groupId>
70            <artifactId>junit</artifactId>
71            <version>4.12</version>
72            <scope>test</scope>
73        </dependency>
74        <dependency>
75            <groupId>org.springframework</groupId>
76            <artifactId>spring</artifactId>
77            <version>2.5.6</version>
78            <scope>test</scope>
79        </dependency>
80        <dependency>
81            <groupId>org.apache.velocity</groupId>
82            <artifactId>velocity</artifactId>
83            <version>1.6.2</version>
84            <scope>test</scope>
85        </dependency>
86        <dependency>
87            <groupId>joda-time</groupId>
88            <artifactId>joda-time</artifactId>
89            <version>1.6</version>
90            <scope>test</scope>
91        </dependency>
92    </dependencies>
93    <distributionManagement>
94        <repository>
95            <id>sonatype-nexus-staging</id>
96            <name>Nexus Release Repository</name>
97            <url>${release.repo.url}</url>
98        </repository>
99        <snapshotRepository>
100            <id>sonatype-nexus-snapshots</id>
101            <name>Sonatype Nexus Snapshots</name>
102            <url>${snapshot.repo.url}</url>
103            <uniqueVersion>false</uniqueVersion>
104        </snapshotRepository>
105    </distributionManagement>
106    <build>
107        <testResources>
108            <testResource>
109                <directory>${basedir}/src/test/resources</directory>
110                <filtering>true</filtering>
111            </testResource>
112        </testResources>
113        <pluginManagement>
114            <plugins>
115                <plugin>
116                    <groupId>org.apache.maven.plugins</groupId>
117                    <artifactId>maven-javadoc-plugin</artifactId>
118                    <version>2.10.3</version>
119                </plugin>
120                <plugin>
121                    <groupId>org.apache.maven.plugins</groupId>
122                    <artifactId>maven-site-plugin</artifactId>
123                    <version>3.5</version>
124                </plugin>
125            </plugins>
126        </pluginManagement>
127        <plugins>
128            <plugin>
129                <groupId>org.apache.maven.plugins</groupId>
130                <artifactId>maven-compiler-plugin</artifactId>
131                <version>3.5.1</version>
132                <configuration>
133                    <source>${maven.compiler.source}</source>
134                    <target>${maven.compiler.target}</target>
135                    <encoding>${project.build.sourceEncoding}</encoding>
136                </configuration>
137            </plugin>
138            <plugin>
139                <groupId>org.apache.maven.plugins</groupId>
140                <artifactId>maven-surefire-plugin</artifactId>
141                <version>2.19.1</version>
142                <configuration>
143                    <argLine>-Xmx512m</argLine>
144                    <includes>
145                        <include>**/*Test.java</include>
146                    </includes>
147                    <excludes>
148                        <exclude>**/StressTest.java</exclude>
149                        <exclude>**/ParallelTest.java</exclude>
150                    </excludes>
151                </configuration>
152            </plugin>
153            <plugin>
154                <groupId>org.apache.maven.plugins</groupId>
155                <artifactId>maven-eclipse-plugin</artifactId>
156                <version>2.10</version>
157                <configuration>
158                    <buildOutputDirectory>bin</buildOutputDirectory>
159                </configuration>
160            </plugin>
161            <plugin>
162                <groupId>org.codehaus.mojo</groupId>
163                <artifactId>cobertura-maven-plugin</artifactId>
164                <version>2.7</version>
165                <configuration>
166                    <check>
167                        <totalBranchRate>80</totalBranchRate>
168                        <totalLineRate>95</totalLineRate>
169                    </check>
170                    <formats>
171                        <format>html</format>
172                        <format>xml</format>
173                    </formats>
174                    <instrumentation>
175                        <excludes>
176                            <exclude>org/yaml/snakeyaml/external/**</exclude>
177                        </excludes>
178                    </instrumentation>
179                </configuration>
180                <executions>
181                    <execution>
182                        <goals>
183                            <goal>clean</goal>
184                            <goal>check</goal>
185                        </goals>
186                    </execution>
187                </executions>
188            </plugin>
189            <plugin>
190                <groupId>org.apache.maven.plugins</groupId>
191                <artifactId>maven-changes-plugin</artifactId>
192                <version>2.11</version>
193                <executions>
194                    <execution>
195                        <id>validate-changes</id>
196                        <phase>pre-site</phase>
197                        <goals>
198                            <goal>changes-validate</goal>
199                        </goals>
200                        <configuration>
201                            <failOnError>true</failOnError>
202                        </configuration>
203                    </execution>
204                </executions>
205            </plugin>
206            <plugin>
207                <groupId>org.apache.maven.plugins</groupId>
208                <artifactId>maven-source-plugin</artifactId>
209                <version>3.0.0</version>
210                <executions>
211                    <execution>
212                        <goals>
213                            <goal>jar</goal>
214                        </goals>
215                    </execution>
216                </executions>
217            </plugin>
218            <plugin>
219                <groupId>org.apache.maven.plugins</groupId>
220                <artifactId>maven-javadoc-plugin</artifactId>
221                <configuration>
222                    <links>
223                        <link>http://java.sun.com/javase/6/docs/api/</link>
224                    </links>
225                </configuration>
226                <executions>
227                    <execution>
228                        <id>attach-javadocs</id>
229                        <goals>
230                            <goal>jar</goal>
231                        </goals>
232                    </execution>
233                </executions>
234            </plugin>
235            <plugin>
236                <groupId>com.mycila.maven-license-plugin</groupId>
237                <artifactId>maven-license-plugin</artifactId>
238                <version>1.10.b1</version>
239                <configuration>
240                    <header>src/etc/header.txt</header>
241                    <quiet>false</quiet>
242                    <failIfMissing>true</failIfMissing>
243                    <aggregate>false</aggregate>
244                    <includes>
245                        <include>src/**/*.java</include>
246                    </includes>
247                    <excludes>
248                        <exclude>src/main/java/org/yaml/snakeyaml/external/**</exclude>
249                    </excludes>
250                    <useDefaultExcludes>true</useDefaultExcludes>
251                    <useDefaultMapping>true</useDefaultMapping>
252                    <strictCheck>true</strictCheck>
253                    <encoding>UTF-8</encoding>
254                </configuration>
255                <executions>
256                    <execution>
257                        <phase>site</phase>
258                        <goals>
259                            <goal>format</goal>
260                        </goals>
261                    </execution>
262                </executions>
263            </plugin>
264            <plugin>
265                <groupId>org.apache.felix</groupId>
266                <artifactId>maven-bundle-plugin</artifactId>
267                <version>3.0.1</version>
268                <extensions>true</extensions>
269                <configuration>
270                    <instructions>
271                        <_nouses>true</_nouses>
272                        <Export-Package>
273                            !org.yaml.snakeyaml.external*,
274                            org.yaml.snakeyaml.*;version=${project.version}
275                        </Export-Package>
276                        <Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment>
277                    </instructions>
278                </configuration>
279            </plugin>
280            <plugin>
281                <artifactId>maven-site-plugin</artifactId>
282                <version>3.4</version>
283                <executions>
284                    <execution>
285                        <id>attach-descriptor</id>
286                        <goals>
287                            <goal>attach-descriptor</goal>
288                        </goals>
289                    </execution>
290                </executions>
291            </plugin>
292        </plugins>
293    </build>
294    <reporting>
295        <plugins>
296            <plugin>
297                <groupId>org.apache.maven.plugins</groupId>
298                <artifactId>maven-changes-plugin</artifactId>
299                <version>2.11</version>
300                <configuration>
301                    <issueLinkTemplate>https://bitbucket.org/asomov/snakeyaml/issues/%ISSUE%</issueLinkTemplate>
302                </configuration>
303                <reportSets>
304                    <reportSet>
305                        <reports>
306                            <report>changes-report</report>
307                        </reports>
308                    </reportSet>
309                </reportSets>
310            </plugin>
311            <plugin>
312                <groupId>org.apache.maven.plugins</groupId>
313                <artifactId>maven-surefire-report-plugin</artifactId>
314                <version>2.19.1</version>
315                <configuration>
316                    <showSuccess>true</showSuccess>
317                </configuration>
318            </plugin>
319            <plugin>
320                <groupId>org.codehaus.mojo</groupId>
321                <artifactId>cobertura-maven-plugin</artifactId>
322                <version>2.6</version>
323                <configuration>
324                    <formats>
325                        <format>html</format>
326                        <format>xml</format>
327                    </formats>
328                </configuration>
329            </plugin>
330            <plugin>
331                <groupId>org.apache.maven.plugins</groupId>
332                <artifactId>maven-javadoc-plugin</artifactId>
333                <reportSets>
334                    <reportSet>
335                        <id>html</id>
336                        <configuration>
337                            <doctitle>API for ${project.name} ${project.version}</doctitle>
338                            <windowtitle>API for ${project.name} ${project.version}</windowtitle>
339                            <testDoctitle>Test API for ${project.name} ${project.version}</testDoctitle>
340                            <testWindowtitle>Test API for ${project.name} ${project.version}</testWindowtitle>
341                        </configuration>
342                        <reports>
343                            <report>javadoc</report>
344                        </reports>
345                    </reportSet>
346                </reportSets>
347            </plugin>
348        </plugins>
349    </reporting>
350    <profiles>
351        <profile>
352            <id>toolchain</id>
353            <activation>
354                <file>
355                    <exists>${user.home}/.m2/toolchains.xml</exists>
356                </file>
357            </activation>
358            <build>
359                <plugins>
360                    <plugin>
361                        <groupId>org.apache.maven.plugins</groupId>
362                        <artifactId>maven-toolchains-plugin</artifactId>
363                        <version>1.1</version>
364                        <executions>
365                            <execution>
366                                <phase>validate</phase>
367                                <goals>
368                                    <goal>toolchain</goal>
369                                </goals>
370                            </execution>
371                        </executions>
372                        <configuration>
373                        <toolchains>
374                            <jdk>
375                                <version>${maven.compiler.target}</version>
376                            </jdk>
377                        </toolchains>
378                        </configuration>
379                    </plugin>
380                </plugins>
381            </build>
382        </profile>
383        <profile>
384          <id>with-java8-tests</id>
385          <properties>
386            <maven.compiler.source>1.8</maven.compiler.source>
387            <maven.compiler.target>1.8</maven.compiler.target>
388          </properties>
389          <build>
390            <plugins>
391              <plugin>
392                <groupId>org.codehaus.mojo</groupId>
393                <artifactId>build-helper-maven-plugin</artifactId>
394                <version>1.10</version>
395                <executions>
396                  <execution>
397                    <id>add-java8-test-source</id>
398                    <phase>generate-test-sources</phase>
399                    <goals>
400                      <goal>add-test-source</goal>
401                    </goals>
402                    <configuration>
403                      <sources>
404                        <source>${basedir}/src/test/java8/</source>
405                      </sources>
406                    </configuration>
407                  </execution>
408                </executions>
409              </plugin>
410            </plugins>
411          </build>
412        </profile>
413        <profile>
414            <id>release</id>
415            <activation>
416                <property>
417                    <name>performRelease</name>
418                    <value>true</value>
419                </property>
420            </activation>
421            <build>
422                <plugins>
423                    <plugin>
424                        <groupId>org.apache.maven.plugins</groupId>
425                        <artifactId>maven-gpg-plugin</artifactId>
426                        <version>1.6</version>
427                        <executions>
428                            <execution>
429                                <id>sign-artifacts</id>
430                                <phase>verify</phase>
431                                <goals>
432                                    <goal>sign</goal>
433                                </goals>
434                            </execution>
435                        </executions>
436                    </plugin>
437                </plugins>
438            </build>
439        </profile>
440        <profile>
441            <id>findbugs</id>
442            <build>
443                <plugins>
444                    <plugin>
445                        <groupId>org.codehaus.mojo</groupId>
446                        <artifactId>findbugs-maven-plugin</artifactId>
447                        <version>3.0.3</version>
448                    </plugin>
449                    <plugin>
450                        <groupId>org.apache.maven.plugins</groupId>
451                        <artifactId>maven-pmd-plugin</artifactId>
452                        <version>3.6</version>
453                    </plugin>
454                </plugins>
455            </build>
456            <reporting>
457                <plugins>
458                    <plugin>
459                        <groupId>org.apache.maven.plugins</groupId>
460                        <artifactId>maven-jxr-plugin</artifactId>
461                        <version>2.5</version>
462                    </plugin>
463                    <plugin>
464                        <groupId>org.codehaus.mojo</groupId>
465                        <artifactId>findbugs-maven-plugin</artifactId>
466                        <version>3.0.3</version>
467                    </plugin>
468                    <plugin>
469                        <groupId>org.apache.maven.plugins</groupId>
470                        <artifactId>maven-pmd-plugin</artifactId>
471                        <version>3.6</version>
472                        <configuration>
473                            <linkXref>true</linkXref>
474                            <sourceEncoding>utf-8</sourceEncoding>
475                            <minimumTokens>100</minimumTokens>
476                            <targetJdk>1.5</targetJdk>
477                            <excludes>
478                                <exclude>**/external/*.java</exclude>
479                            </excludes>
480                        </configuration>
481                    </plugin>
482                </plugins>
483            </reporting>
484        </profile>
485        <profile>
486            <id>android</id>
487            <properties>
488                <android.src>${project.build.directory}/android/src/</android.src>
489                <android.classes>${project.build.directory}/android/classes/</android.classes>
490                <android.test.classes>${project.build.directory}/android/test-classes/</android.test.classes>
491            </properties>
492            <build>
493                <plugins>
494                    <plugin>
495                        <artifactId>maven-resources-plugin</artifactId>
496                        <version>2.7</version>
497                        <executions>
498                            <execution>
499                                <id>copy-src-for-android</id>
500                                <phase>generate-sources</phase>
501                                <goals>
502                                    <goal>copy-resources</goal>
503                                </goals>
504                                <configuration>
505                                    <outputDirectory>${android.src}</outputDirectory>
506                                    <resources>
507                                        <resource>
508                                            <directory>${basedir}/src/main/java</directory>
509                                            <filtering>false</filtering>
510                                            <excludes>
511                                                <exclude>org/yaml/snakeyaml/introspector/MethodProperty.java</exclude>
512                                            </excludes>
513                                        </resource>
514                                    </resources>
515                                </configuration>
516                            </execution>
517                            <execution>
518                                <id>copy-test-resources-for-android</id>
519                                <phase>process-test-resources</phase>
520                                <goals>
521                                    <goal>copy-resources</goal>
522                                </goals>
523                                <configuration>
524                                    <outputDirectory>${android.test.classes}</outputDirectory>
525                                    <resources>
526                                        <resource>
527                                            <directory>${basedir}/src/test/resources</directory>
528                                        </resource>
529                                    </resources>
530                                </configuration>
531                            </execution>
532                        </executions>
533                    </plugin>
534
535                    <plugin>
536                        <groupId>org.apache.maven.plugins</groupId>
537                        <artifactId>maven-patch-plugin</artifactId>
538                        <version>1.2</version>
539                        <configuration>
540                            <patchDirectory>${basedir}/src/patches/android/</patchDirectory>
541                            <targetDirectory>${android.src}</targetDirectory>
542                            <skipApplication>false</skipApplication>
543                            <strip>4</strip>
544                        </configuration>
545                        <executions>
546                            <execution>
547                                <id>android-patches</id>
548                                <phase>process-sources</phase>
549                                <goals>
550                                    <goal>apply</goal>
551                                </goals>
552                                <configuration>
553                                    <patchTrackingFile>${project.build.directory}/android/patches-applied.txt
554                                    </patchTrackingFile>
555                                    <naturalOrderProcessing>true</naturalOrderProcessing>
556                                </configuration>
557                            </execution>
558                        </executions>
559                    </plugin>
560                    <plugin>
561                        <groupId>org.apache.maven.plugins</groupId>
562                        <artifactId>maven-antrun-plugin</artifactId>
563                        <version>1.8</version>
564                        <executions>
565                            <execution>
566                                <id>build-for-android</id>
567                                <phase>compile</phase>
568                                <goals>
569                                    <goal>run</goal>
570                                </goals>
571                                <configuration>
572                                    <target>
573                                        <mkdir dir="${android.classes}" />
574                                        <mkdir dir="${android.test.classes}" />
575
576                                        <!-- compile patched sources -->
577                                        <javac srcdir="${android.src}" destdir="${android.classes}" classpath="${android.classes}" encoding="${project.build.sourceEncoding}" target="1.5" source="1.5" debug="true" includeantruntime="false" fork="true" />
578
579                                        <!-- compile test classes. Exclude some - not for BeanAccess.FIELD -->
580                                        <javac srcdir="${basedir}/src/test/java:${basedir}/src/test/resources" destdir="${android.test.classes}" classpath="${android.classes}:${android.test.classes}:${junit:junit:jar}:${org.springframework:spring:jar}:${org.apache.velocity:velocity:jar}:${joda-time:joda-time:jar}" encoding="${project.build.sourceEncoding}" target="1.5" source="1.5" debug="true" includeantruntime="false" fork="true">
581                                            <exclude name="org/yaml/snakeyaml/introspector/MethodPropertyTest.java" />
582                                            <exclude name="org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java" />
583                                            <exclude name="org/yaml/snakeyaml/issues/issue60/CustomOrderTest.java" />
584                                            <exclude name="org/yaml/snakeyaml/issues/issue29/FlexibleScalarStylesInJavaBeanTest.java" />
585
586                                        </javac>
587                                    </target>
588
589                                </configuration>
590                            </execution>
591                        </executions>
592                    </plugin>
593                    <plugin>
594                        <artifactId>maven-surefire-plugin</artifactId>
595                        <executions>
596                            <execution>
597                                <id>test-android</id>
598                                <phase>test</phase>
599                                <goals>
600                                    <goal>test</goal>
601                                </goals>
602                                <configuration>
603                                    <classesDirectory>${android.classes}</classesDirectory>
604                                    <reportsDirectory>${project.build.directory}/android/surefire-reports
605                                    </reportsDirectory>
606                                    <testClassesDirectory>${android.test.classes}</testClassesDirectory>
607                                    <!--
608                                    We ignore test failures for android build at the moment.
609                                    Most of the FAILs are because of testing with "property" not "field" access.
610                                    But we still fail whole build if there are test errors.
611                                    -->
612                                    <testFailureIgnore>true</testFailureIgnore>
613                                </configuration>
614                            </execution>
615                        </executions>
616                    </plugin>
617                    <plugin>
618                        <artifactId>maven-jar-plugin</artifactId>
619                        <executions>
620                            <execution>
621                                <id>package-android-jar</id>
622                                <phase>package</phase>
623                                <goals>
624                                    <goal>jar</goal>
625                                </goals>
626                                <configuration>
627                                    <classesDirectory>${android.classes}</classesDirectory>
628                                    <classifier>android</classifier>
629                                </configuration>
630                            </execution>
631                        </executions>
632                    </plugin>
633                </plugins>
634            </build>
635        </profile>
636    </profiles>
637</project>
638