-
Notifications
You must be signed in to change notification settings - Fork 2
/
pom.xml
224 lines (198 loc) · 9.4 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
219
220
221
222
223
224
<?xml version='1.0' encoding='UTF-8'?>
<!--
Note to template users: update the copyright in this file (and all others) as needed.
Copyright © 2021, California Institute of Technology ("Caltech").
U.S. Government sponsorship acknowledged.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
• Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
• Redistributions must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
• Neither the name of Caltech nor its operating division, the Jet Propulsion
Laboratory, nor the names of its contributors may be used to endorse or
promote products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-->
<!--
This is the TEMPLATE project object model or `pom.xml` file.
Go through this file line-by-line and replace the template values with your own.
-->
<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'>
<!-- POM-specific metadata -->
<modelVersion>4.0.0</modelVersion>
<!--
Speaking of the parent POM, here we say what it is: every PDS Maven project inherits from this parent.
Maven (and other compatible build tools) resolve this automatically, but you can find the source of this
parent at https://github.com/NASA-PDS/pdsen-maven-parent
-->
<parent>
<groupId>gov.nasa</groupId>
<artifactId>pds</artifactId>
<version>1.18.0</version>
</parent>
<!-- My project metadata here -->
<properties>
<!-- Obviously put in your own project name instead of `myproject` -->
<project-name>myproject</project-name>
<!-- You'll want a Unicode-type encoding here in almost every case -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--
Maven "coordinates" that identify this package uniquely in the entire universe; the group identifies an
organizational unit (by reverse domain name) that produced the artifact:
-->
<groupId>gov.nasa.pds</groupId>
<!--
The next part of the Maven coorindate is the name of the artifact, its "artifact ID". Note we cannot use
any expression here, as tempting as it would be to use ${project-name} here:
-->
<artifactId>myproject</artifactId>
<!-- The third part of the Maven coorindate is the version identifier of the artifact: -->
<version>0.2.0-SNAPSHOT</version>
<!-- The final part is the kind: here we make a `jar`, but there's `war`, `ejb`, `ear`, `maven-plugin`, etc.: -->
<packaging>jar</packaging>
<name>${project.groupId}:${project-name}</name>
<description>
Put a short paragraph-sized summary of the project here.
</description>
<!-- Check the calendar -->
<inceptionYear>2021</inceptionYear>
<!--
Note: in the elements below, we cannot use `${project-name}` as apparently property expansion does
not occur here despite the documentation at https://maven.apache.org/pom.html#Properties says.
So be sure to replace all five `myproject`s below with your actual project name!
-->
<url>https://nasa-pds.github.io/myproject</url>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/NASA-PDS/myproject/issues</url>
</issueManagement>
<scm>
<connection>scm:git:https://github.com/NASA-PDS/myproject.git</connection>
<developerConnection>scm:git:ssh://github.com/NASA-PDS/myproject.git</developerConnection>
<url>https://nasa-pds.github.io/myproject</url>
<tag>main</tag>
</scm>
<!-- Put the packages your project depends on here -->
<dependencies>
<!-- If you do any kind of testing—and you should—use Junit, which is the gold standard for Java -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.11.0</version>
<scope>test</scope>
</dependency>
<!--
Here's an example dependency; you can find dependencies at https://search.maven.org. This isn't
actually used by this template, but is shown full-fleshed out because chances are your project
will need at least one if not many dependencies.
-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-numbers-primes</artifactId>
<version>1.2</version>
<type>jar</type>
<scope>compile</scope>
<optional>false</optional>
</dependency>
</dependencies>
<build>
<!--
Resources (files) are non-code parts of a project that the code-parts access during run time; these
should be bundled in a jar (or war, or whatever) and get specified here
-->
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>example.properties</include>
</includes>
<targetPath>gov/nasa/pds/mypackage</targetPath>
</resource>
<!-- You can give <testResources> for resources needed during the test phase -->
</resources>
<!--
Plugins tell Maven how to operate the various lifecycle phases; include extra as needed, such
as for CORBA stub generation from `.idl` files, or even more modern things.
-->
<plugins>
<!--
Other plugins get inherited, such as maven-compiler-plugin and maver-surefire-plugin,
so we don't need to repeat them here.
This plugin below makes this package an *executable* jar. If you want to make a plain jar, adjust
the parameters below; or use a different plugin to get a differnt kind of artifact.
You can find some plugins at: https://maven.apache.org/plugins/
Note that other plugins exist and may be published elsewhere.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Main-Class>gov.nasa.pds.mypackage.Main</Main-Class>
</manifestEntries>
</archive>
</configuration>
</plugin>
<!-- Build the site -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>4.0.0-M16</version>
<configuration>
<skip>false</skip> <!-- This is `true` in parent pom -->
<skipDeploy>false</skipDeploy> <!-- This is `true` in parent pom -->
</configuration>
</plugin>
<!-- Need this for Maven central requirements -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>make-source-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar-no-fork</goal>
<goal>test-jar-no-fork</goal>
</goals>
<configuration>
<excludeResources>true</excludeResources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- Other handy items get inherited from the parent POM, but you can override these here -->
<developers/>
<profiles/>
<distributionManagement/>
<reporting/>
<licenses/>
<organization/> <!-- ← Might not be implemented in parent pom yet -->
</project>