-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathpom.xml
218 lines (203 loc) · 8.65 KB
/
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<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">
<modelVersion>4.0.0</modelVersion>
<name>kryo-tools</name>
<description>Shared Kryo serializers and utilities for serialization round-trip tests</description>
<url>https://github.com/conveyal/kryo-tools</url>
<groupId>com.conveyal</groupId>
<artifactId>kryo-tools</artifactId>
<version>1.7.0-SNAPSHOT</version>
<packaging>jar</packaging>
<licenses>
<license>
<name>MIT</name>
<url>https://opensource.org/licenses/MIT</url>
</license>
</licenses>
<!-- Developer entries are provided for primary developers at Conveyal.
For other contributors, see https://github.com/conveyal/kryo-tools/graphs/contributors -->
<developers>
<developer>
<name>Andrew Byrd</name>
<email>abyrd@conveyal.com</email>
<organization>Conveyal</organization>
<organizationUrl>http://conveyal.com/</organizationUrl>
</developer>
</developers>
<!-- Define where the source code for this project lives -->
<scm>
<connection>scm:git:https://github.com/conveyal/kryo-tools.git</connection>
<developerConnection>scm:git:https://github.com/conveyal/kryo-tools.git</developerConnection>
<url>https://github.com/conveyal/kryo-tools</url>
</scm>
<!-- Define some variables to be used elsewhere in the build. -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- Define where the artifacts produced by this build will be deployed -->
<distributionManagement>
<!-- We are using Sonatype Nexus Staging instead of Maven Release plugin.
Only a snapshot repo should be configured. Releases are done from that snapshot staging repo. -->
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<!-- Target Java LTS 11 -->
<release>20</release>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.1.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifestEntries>
<!-- For Java 11+ Modules, specify a module name. Do not create module-info.java until all
our dependencies specify a module name. -->
<Automatic-Module-Name>com.conveyal.kryo_tools</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<!-- Recommended way to deploy to OSSRH -->
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.13</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<!-- Release versions will be synced to Maven Central automatically. -->
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<!-- Allow attaching Javadoc during releases -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<!-- Turn off strict Javadoc checking -->
<doclint>none</doclint>
<tags>
<tag>
<name>notnull</name>
<placement>a</placement>
<head>Not null</head>
</tag>
<tag>
<name>default</name>
<placement>a</placement>
<head>Default:</head>
</tag>
</tags>
</configuration>
<executions>
<!-- Compress Javadoc into JAR and include that JAR when deploying. -->
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Include zipped source code in releases -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>sign-artifacts</id>
<!-- We sign in the verify phase, which means it will happen before install and deploy (the last two phases)
but not before earlier phases like test or package. -->
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- Dependencies reviewed: as of 2023-01-13 all are at latest versions. -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>5.10.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Kryo serialization, for which we are defining custom serializers. -->
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>5.5.0</version>
</dependency>
<!-- Trove provides optimized map/set collections for primitive types (int, long, etc.) -->
<!-- Many of our custom serializers are for Trove collection classes. -->
<dependency>
<groupId>net.sf.trove4j</groupId>
<artifactId>trove4j</artifactId>
<version>3.0.3</version>
</dependency>
<!-- Guava is a set of core libraries that includes new collection types, among other things. -->
<!-- Some of our custom serializers are for Guava collection classes. -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>32.1.2-jre</version>
</dependency>
<!-- Logging API. -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.7</version>
</dependency>
<!-- Logging API implementation. -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.11</version>
</dependency>
<!-- Junit is for unit testing. -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>