xref: /OpenGrok/opengrok-web/pom.xml (revision 1a2ed5cf92e80419ef690aef909685020d04e0e7)
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3
4CDDL HEADER START
5
6The contents of this file are subject to the terms of the
7Common Development and Distribution License (the "License").
8You may not use this file except in compliance with the License.
9
10See LICENSE.txt included in this distribution for the specific
11language governing permissions and limitations under the License.
12
13When distributing Covered Code, include this CDDL HEADER in each
14file and include the License file at LICENSE.txt.
15If applicable, add the following below this CDDL HEADER, with the
16fields enclosed by brackets "[]" replaced with your own identifying
17information: Portions Copyright [yyyy] [name of copyright owner]
18
19CDDL HEADER END
20
21Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
22Portions Copyright (c) 2018, 2020, Chris Fraire <cfraire@me.com>.
23
24-->
25<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">
26    <modelVersion>4.0.0</modelVersion>
27
28    <parent>
29        <groupId>org.opengrok</groupId>
30        <artifactId>opengrok-top</artifactId>
31        <version>1.7.32</version>
32    </parent>
33
34    <artifactId>opengrok-web</artifactId>
35    <version>1.7.32</version>
36    <packaging>war</packaging>
37
38    <name>OpenGrok Web</name>
39
40    <properties>
41        <tomcat.server.id>OpenGrok</tomcat.server.id>
42        <tomcat.url>http://localhost:8080/manager/text</tomcat.url>
43    </properties>
44
45    <dependencies>
46        <dependency>
47            <groupId>${project.groupId}</groupId>
48            <artifactId>opengrok</artifactId>
49            <version>${project.version}</version>
50        </dependency>
51        <dependency>
52            <groupId>${project.groupId}</groupId>
53            <artifactId>opengrok</artifactId>
54            <version>${project.version}</version>
55            <classifier>tests</classifier>
56            <type>test-jar</type>
57            <scope>test</scope>
58        </dependency>
59        <dependency>
60            <groupId>${project.groupId}</groupId>
61            <artifactId>suggester</artifactId>
62            <version>${project.version}</version>
63        </dependency>
64        <dependency>
65            <groupId>jakarta.servlet</groupId>
66            <artifactId>jakarta.servlet-api</artifactId>
67        </dependency>
68        <dependency>
69            <groupId>jakarta.servlet.jsp</groupId>
70            <artifactId>jakarta.servlet.jsp-api</artifactId>
71            <version>3.0.0</version>
72            <scope>provided</scope>
73        </dependency>
74        <dependency>
75            <groupId>org.glassfish.web</groupId>
76            <artifactId>jakarta.servlet.jsp.jstl</artifactId>
77            <version>2.0.0</version>
78        </dependency>
79        <dependency>
80            <groupId>org.glassfish.jersey.containers</groupId>
81            <artifactId>jersey-container-servlet</artifactId>
82            <version>${jersey.version}</version>
83        </dependency>
84        <dependency>
85            <groupId>org.glassfish.jersey.inject</groupId>
86            <artifactId>jersey-hk2</artifactId>
87            <version>${jersey.version}</version>
88        </dependency>
89        <dependency>
90            <groupId>org.glassfish.jersey.media</groupId>
91            <artifactId>jersey-media-json-jackson</artifactId>
92            <version>${jersey.version}</version>
93        </dependency>
94        <dependency>
95            <groupId>org.glassfish.jersey.ext</groupId>
96            <artifactId>jersey-bean-validation</artifactId>
97            <version>${jersey.version}</version>
98        </dependency>
99        <dependency>
100            <groupId>org.glassfish.jaxb</groupId>
101            <artifactId>jaxb-runtime</artifactId>
102        </dependency>
103        <dependency>
104            <groupId>org.webjars</groupId>
105            <artifactId>jquery</artifactId>
106            <version>3.6.0</version>
107        </dependency>
108        <dependency>
109            <groupId>org.webjars.npm</groupId>
110            <artifactId>showdown</artifactId>
111            <version>1.9.1</version>
112            <!-- dependencies not required -->
113            <exclusions>
114                <exclusion>
115                    <groupId>*</groupId>
116                    <artifactId>*</artifactId>
117                </exclusion>
118            </exclusions>
119        </dependency>
120        <dependency>
121            <groupId>org.webjars.npm</groupId>
122            <artifactId>tablesorter</artifactId>
123            <version>2.31.3</version>
124            <!-- dependencies not required -->
125            <exclusions>
126                <exclusion>
127                    <groupId>*</groupId>
128                    <artifactId>*</artifactId>
129                </exclusion>
130            </exclusions>
131        </dependency>
132        <dependency>
133            <groupId>org.webjars.npm</groupId>
134            <artifactId>xss</artifactId>
135            <version>1.0.8</version>
136            <!-- dependencies not required -->
137            <exclusions>
138                <exclusion>
139                    <groupId>*</groupId>
140                    <artifactId>*</artifactId>
141                </exclusion>
142            </exclusions>
143        </dependency>
144        <dependency>
145            <groupId>org.glassfish.jersey.test-framework.providers</groupId>
146            <artifactId>jersey-test-framework-provider-grizzly2</artifactId>
147            <version>${jersey.version}</version>
148            <scope>test</scope>
149            <exclusions>
150                <exclusion>
151                    <groupId>junit</groupId>
152                    <artifactId>junit</artifactId>
153                </exclusion>
154            </exclusions>
155        </dependency>
156        <dependency>
157            <groupId>org.mockito</groupId>
158            <artifactId>mockito-core</artifactId>
159            <scope>test</scope>
160        </dependency>
161        <dependency>
162            <groupId>org.junit.jupiter</groupId>
163            <artifactId>junit-jupiter-engine</artifactId>
164            <scope>test</scope>
165        </dependency>
166        <dependency>
167            <groupId>org.awaitility</groupId>
168            <artifactId>awaitility</artifactId>
169            <scope>test</scope>
170        </dependency>
171        <dependency>
172            <groupId>org.jvnet.hudson</groupId>
173            <artifactId>org.suigeneris.jrcs.diff</artifactId>
174            <version>0.4.2</version>
175        </dependency>
176        <dependency>
177            <groupId>cglib</groupId>
178            <artifactId>cglib</artifactId>
179            <version>3.3.0</version>
180        </dependency>
181        <dependency>
182            <groupId>org.modelmapper</groupId>
183            <artifactId>modelmapper</artifactId>
184            <version>2.4.4</version>
185        </dependency>
186        <dependency>
187            <groupId>org.hamcrest</groupId>
188            <artifactId>hamcrest</artifactId>
189            <version>${hamcrest.version}</version>
190            <scope>test</scope>
191        </dependency>
192        <dependency>
193            <groupId>org.mockito</groupId>
194            <artifactId>mockito-junit-jupiter</artifactId>
195            <version>${mockito.version}</version>
196            <scope>test</scope>
197        </dependency>
198        <dependency>
199            <groupId>org.jetbrains</groupId>
200            <artifactId>annotations</artifactId>
201        </dependency>
202        <dependency>
203            <groupId>org.junit.jupiter</groupId>
204            <artifactId>junit-jupiter-params</artifactId>
205            <scope>test</scope>
206        </dependency>
207    </dependencies>
208
209    <build>
210        <finalName>source</finalName>
211
212        <plugins>
213            <plugin>
214                <groupId>org.eclipse.jetty</groupId>
215                <artifactId>jetty-jspc-maven-plugin</artifactId>
216                <version>11.0.0</version>
217                <executions>
218                    <execution>
219                        <id>jspc</id>
220                        <goals>
221                            <goal>jspc</goal>
222                        </goals>
223                        <configuration>
224                            <mergeFragment>false</mergeFragment>
225                            <generatedClasses>${project.build.directory}/jspc</generatedClasses>
226                        </configuration>
227                    </execution>
228                </executions>
229            </plugin>
230            <plugin>
231                <groupId>org.apache.maven.plugins</groupId>
232                <artifactId>maven-war-plugin</artifactId>
233                <version>3.1.0</version>
234                <configuration>
235                    <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
236                </configuration>
237            </plugin>
238
239            <plugin>
240                <groupId>org.apache.tomcat.maven</groupId>
241                <artifactId>tomcat7-maven-plugin</artifactId>
242                <version>2.2</version>
243                <configuration>
244                    <url>${tomcat.url}</url>
245                    <server>${tomcat.server.id}</server>
246                    <path>/${project.build.finalName}</path>
247                </configuration>
248            </plugin>
249            <plugin>
250                <groupId>org.apache.maven.plugins</groupId>
251                <artifactId>maven-surefire-plugin</artifactId>
252                <configuration>
253                    <argLine>
254                        @{surefireArgLine}
255                        -Djna.nosys=true
256                        --illegal-access=permit
257                        --add-exports java.base/jdk.internal.ref=ALL-UNNAMED
258                        --add-exports java.base/jdk.internal.misc=ALL-UNNAMED
259                        --add-exports java.base/sun.nio.ch=ALL-UNNAMED
260                    </argLine>
261                </configuration>
262            </plugin>
263            <plugin>
264                <groupId>com.github.blutorange</groupId>
265                <artifactId>closure-compiler-maven-plugin</artifactId>
266                <version>2.21.0</version>
267                <configuration>
268                    <baseSourceDir>${project.basedir}/src/main/webapp</baseSourceDir>
269                    <baseTargetDir>${project.build.directory}/${project.build.finalName}</baseTargetDir>
270                </configuration>
271                <executions>
272                    <execution>
273                        <id>default-minify</id>
274                        <configuration>
275                            <encoding>UTF-8</encoding>
276                            <sourceDir>js</sourceDir>
277                            <targetDir>js</targetDir>
278                            <includes>**/*.js</includes>
279                            <excludes>**/*.min.js</excludes>
280                            <skipMerge>true</skipMerge>
281                            <closureLanguageOut>ECMASCRIPT5</closureLanguageOut>
282                        </configuration>
283                        <goals>
284                            <goal>minify</goal>
285                        </goals>
286                        <phase>generate-resources</phase>
287                    </execution>
288                </executions>
289            </plugin>
290            <plugin>
291                <groupId>net.alchim31.maven</groupId>
292                <artifactId>yuicompressor-maven-plugin</artifactId>
293                <version>1.5.1</version>
294                <executions>
295                    <execution>
296                        <goals>
297                            <goal>compress</goal>
298                        </goals>
299                    </execution>
300                </executions>
301                <configuration>
302                    <suffix>.min</suffix>
303                    <excludes>
304                        <exclude>**/*.js</exclude>
305                        <exclude>**/*min.js</exclude>
306                        <exclude>**/*min.css</exclude>
307                    </excludes>
308                </configuration>
309            </plugin>
310            <plugin>
311                <groupId>org.apache.maven.plugins</groupId>
312                <artifactId>maven-checkstyle-plugin</artifactId>
313            </plugin>
314        </plugins>
315    </build>
316
317    <pluginRepositories>
318        <pluginRepository>
319            <name>oss.sonatype.org</name>
320            <id>oss.sonatype.org</id>
321            <url>https://oss.sonatype.org/content/groups/public</url>
322        </pluginRepository>
323    </pluginRepositories>
324
325    <profiles>
326        <profile>
327            <id>Windows environment</id>
328            <activation>
329                <os>
330                    <family>Windows</family>
331                </os>
332            </activation>
333            <build>
334                <plugins>
335                    <plugin>
336                        <groupId>org.apache.maven.plugins</groupId>
337                        <artifactId>maven-surefire-plugin</artifactId>
338                        <configuration>
339                            <excludes>
340                                <exclude>**/ProjectsControllerTest.java</exclude>
341                            </excludes>
342                        </configuration>
343                    </plugin>
344                </plugins>
345            </build>
346        </profile>
347    </profiles>
348
349</project>
350