pom.xml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. The MIT License
  4. Copyright (c) 2004-2011, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh
  5. Permission is hereby granted, free of charge, to any person obtaining a copy
  6. of this software and associated documentation files (the "Software"), to deal
  7. in the Software without restriction, including without limitation the rights
  8. to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  9. copies of the Software, and to permit persons to whom the Software is
  10. furnished to do so, subject to the following conditions:
  11. The above copyright notice and this permission notice shall be included in
  12. all copies or substantial portions of the Software.
  13. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  14. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  15. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  16. AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  17. LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  18. OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  19. THE SOFTWARE.
  20. -->
  21. <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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  22. <modelVersion>4.0.0</modelVersion>
  23. <parent>
  24. <groupId>org.jenkins-ci</groupId>
  25. <artifactId>jenkins</artifactId>
  26. <version>2.1413.v65a_1fb_5a_dd02</version>
  27. <relativePath />
  28. </parent>
  29. <groupId>org.jenkins-ci.main</groupId>
  30. <artifactId>jenkins-parent</artifactId>
  31. <version>${revision}${changelist}</version>
  32. <packaging>pom</packaging>
  33. <name>Jenkins main module</name>
  34. <description>The module that constitutes the main jenkins.war</description>
  35. <url>https://github.com/jenkinsci/jenkins</url>
  36. <licenses>
  37. <license>
  38. <name>The MIT license</name>
  39. <url>https://opensource.org/licenses/MIT</url>
  40. <distribution>repo</distribution>
  41. </license>
  42. </licenses>
  43. <modules>
  44. <module>bom</module>
  45. <module>websocket/spi</module>
  46. <module>websocket/jetty12-ee9</module>
  47. <module>core</module>
  48. <module>war</module>
  49. <module>test</module>
  50. <module>cli</module>
  51. <module>coverage</module>
  52. </modules>
  53. <scm child.scm.connection.inherit.append.path="false" child.scm.developerConnection.inherit.append.path="false" child.scm.url.inherit.append.path="false">
  54. <connection>scm:git:https://github.com/jenkinsci/jenkins.git</connection>
  55. <developerConnection>scm:git:git@github.com:jenkinsci/jenkins.git</developerConnection>
  56. <tag>${scmTag}</tag>
  57. <url>https://github.com/jenkinsci/jenkins</url>
  58. </scm>
  59. <issueManagement>
  60. <system>GitHub</system>
  61. <url>https://github.com/jenkinsci/jenkins/issues</url>
  62. </issueManagement>
  63. <properties>
  64. <revision>2.588</revision>
  65. <changelist>-SNAPSHOT</changelist>
  66. <project.build.outputTimestamp>2026-10-20T06:14:02Z</project.build.outputTimestamp>
  67. <!-- configuration for patch tracker plugin -->
  68. <project.patchManagement.system>github</project.patchManagement.system>
  69. <patch.request.organisation>jenkinsci</patch.request.organisation>
  70. <patch.request.repository>jenkins</patch.request.repository>
  71. <project.patchManagement.url>https://api.github.com</project.patchManagement.url>
  72. <patch.tracker.serverId>jenkins-jira</patch.tracker.serverId>
  73. <changelog.url>https://www.jenkins.io/changelog</changelog.url>
  74. <!-- Bundled Remoting version -->
  75. <remoting.version>3391.va_37fa_a_305d6d</remoting.version>
  76. <spotbugs.effort>Max</spotbugs.effort>
  77. <spotbugs.threshold>Medium</spotbugs.threshold>
  78. <access-modifier.version>1.35</access-modifier.version>
  79. <antlr.version>4.13.2</antlr.version>
  80. <bridge-method-injector.version>1.32</bridge-method-injector.version>
  81. <spotless.check.skip>false</spotless.check.skip>
  82. <ban-junit4-imports.skip>false</ban-junit4-imports.skip>
  83. <!-- Opt-out switches for steps that only matter when producing a release artifact.
  84. Set to true by the quick-build profile below; see CONTRIBUTING.md. -->
  85. <strip.license.comments.skip>false</strip.license.comments.skip>
  86. <!-- Skips node installation, "yarn install" and "yarn build". Only safe when
  87. war/src/main/webapp/jsbundles is already populated from an earlier build. -->
  88. <skip.frontend>false</skip.frontend>
  89. <winstone.version>8.1053.v85e6c1a_3b_278</winstone.version>
  90. <node.version>24.22.0</node.version>
  91. </properties>
  92. <!--
  93. Note that the 'repositories' and 'pluginRepositories' blocks below are actually copy-pasted
  94. from the Jenkins org pom. This is on purpose to keep Jenkins core buildable even if one has
  95. *not* defined the specific details in the settings.xml file.
  96. -->
  97. <repositories>
  98. <repository>
  99. <id>repo.jenkins-ci.org</id>
  100. <url>https://repo.jenkins-ci.org/public/</url>
  101. <!-- allow snapshots -->
  102. </repository>
  103. </repositories>
  104. <pluginRepositories>
  105. <pluginRepository>
  106. <id>repo.jenkins-ci.org</id>
  107. <url>https://repo.jenkins-ci.org/public/</url>
  108. </pluginRepository>
  109. </pluginRepositories>
  110. <build>
  111. <defaultGoal>install</defaultGoal>
  112. <resources>
  113. <resource>
  114. <filtering>false</filtering>
  115. <directory>${basedir}/src/main/resources</directory>
  116. </resource>
  117. <resource>
  118. <filtering>true</filtering>
  119. <directory>${basedir}/src/filter/resources</directory>
  120. </resource>
  121. </resources>
  122. <pluginManagement>
  123. <plugins>
  124. <plugin>
  125. <groupId>org.apache.maven.plugins</groupId>
  126. <artifactId>maven-compiler-plugin</artifactId>
  127. <!-- Version specified in parent POM -->
  128. <configuration>
  129. <compilerReuseStrategy>alwaysNew</compilerReuseStrategy>
  130. <compilerArgs>
  131. <!--
  132. always compile package-info.java for useIncrementalCompilation
  133. ref: https://stackoverflow.com/questions/6770455/maven-compiling-package-info-java-to-package-info-class
  134. -->
  135. <compilerArg>-Xpkginfo:always</compilerArg>
  136. </compilerArgs>
  137. </configuration>
  138. </plugin>
  139. <plugin>
  140. <groupId>org.apache.maven.plugins</groupId>
  141. <artifactId>maven-javadoc-plugin</artifactId>
  142. <!-- Version specified in parent POM -->
  143. <configuration>
  144. <quiet>true</quiet>
  145. <splitindex>true</splitindex>
  146. </configuration>
  147. </plugin>
  148. <plugin>
  149. <groupId>org.apache.maven.plugins</groupId>
  150. <artifactId>maven-surefire-plugin</artifactId>
  151. <!-- Version specified in parent POM -->
  152. <configuration>
  153. <systemPropertyVariables>
  154. <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
  155. <forkedProcessTimeoutInSeconds>3600</forkedProcessTimeoutInSeconds>
  156. <java.awt.headless>true</java.awt.headless>
  157. </systemPropertyVariables>
  158. <environmentVariables>
  159. <DISABLE_SYMLINK_TESTS>${disable.symlink.tests}</DISABLE_SYMLINK_TESTS>
  160. </environmentVariables>
  161. </configuration>
  162. </plugin>
  163. <plugin>
  164. <groupId>org.kohsuke</groupId>
  165. <artifactId>access-modifier-checker</artifactId>
  166. <version>${access-modifier.version}</version>
  167. </plugin>
  168. <plugin>
  169. <groupId>io.jenkins.tools.maven</groupId>
  170. <artifactId>license-maven-plugin</artifactId>
  171. <!-- Version specified in parent POM -->
  172. <executions>
  173. <execution>
  174. <goals>
  175. <goal>process</goal>
  176. </goals>
  177. <phase>compile</phase>
  178. <configuration>
  179. <requireCompleteLicenseInfo>true</requireCompleteLicenseInfo>
  180. <script>../licenseCompleter.groovy</script>
  181. </configuration>
  182. </execution>
  183. </executions>
  184. </plugin>
  185. <plugin>
  186. <groupId>org.jvnet.localizer</groupId>
  187. <artifactId>localizer-maven-plugin</artifactId>
  188. <!-- Version specified in parent POM -->
  189. <configuration>
  190. <outputEncoding>UTF-8</outputEncoding>
  191. </configuration>
  192. </plugin>
  193. <plugin>
  194. <groupId>org.jvnet.hudson.tools</groupId>
  195. <artifactId>maven-encoding-plugin</artifactId>
  196. <version>1.1</version>
  197. </plugin>
  198. <plugin>
  199. <groupId>io.jenkins.tools</groupId>
  200. <artifactId>bridge-method-injector</artifactId>
  201. <version>${bridge-method-injector.version}</version>
  202. </plugin>
  203. <plugin>
  204. <groupId>org.antlr</groupId>
  205. <artifactId>antlr4-maven-plugin</artifactId>
  206. <version>${antlr.version}</version>
  207. </plugin>
  208. <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
  209. <plugin>
  210. <groupId>org.eclipse.m2e</groupId>
  211. <artifactId>lifecycle-mapping</artifactId>
  212. <!-- Version specified in parent POM -->
  213. <configuration>
  214. <lifecycleMappingMetadata>
  215. <pluginExecutions>
  216. <pluginExecution>
  217. <pluginExecutionFilter>
  218. <groupId>org.apache.maven.plugins</groupId>
  219. <artifactId>maven-dependency-plugin</artifactId>
  220. <!-- Version specified in parent POM -->
  221. <versionRange>[2.3,)</versionRange>
  222. <goals>
  223. <goal>list</goal>
  224. <goal>unpack-dependencies</goal>
  225. </goals>
  226. </pluginExecutionFilter>
  227. <action>
  228. <ignore />
  229. </action>
  230. </pluginExecution>
  231. </pluginExecutions>
  232. </lifecycleMappingMetadata>
  233. </configuration>
  234. </plugin>
  235. <plugin>
  236. <groupId>com.github.spotbugs</groupId>
  237. <artifactId>spotbugs-maven-plugin</artifactId>
  238. <!-- Version specified in parent POM -->
  239. <configuration>
  240. <maxHeap>768</maxHeap>
  241. </configuration>
  242. </plugin>
  243. <plugin>
  244. <groupId>org.apache.maven.plugins</groupId>
  245. <artifactId>maven-checkstyle-plugin</artifactId>
  246. <!-- Version specified in parent POM -->
  247. <configuration>
  248. <consoleOutput>true</consoleOutput>
  249. <includeTestSourceDirectory>true</includeTestSourceDirectory>
  250. <configLocation>${maven.multiModuleProjectDirectory}/src/checkstyle/checkstyle-configuration.xml</configLocation>
  251. <suppressionsLocation>${maven.multiModuleProjectDirectory}/src/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
  252. </configuration>
  253. <dependencies>
  254. <dependency>
  255. <groupId>com.puppycrawl.tools</groupId>
  256. <artifactId>checkstyle</artifactId>
  257. <version>14.3.0</version>
  258. </dependency>
  259. </dependencies>
  260. <executions>
  261. <execution>
  262. <id>validate</id>
  263. <goals>
  264. <goal>check</goal>
  265. </goals>
  266. <phase>validate</phase>
  267. </execution>
  268. </executions>
  269. </plugin>
  270. <plugin>
  271. <groupId>org.jacoco</groupId>
  272. <artifactId>jacoco-maven-plugin</artifactId>
  273. <version>0.8.15</version>
  274. </plugin>
  275. </plugins>
  276. </pluginManagement>
  277. <plugins>
  278. <plugin>
  279. <groupId>com.diffplug.spotless</groupId>
  280. <artifactId>spotless-maven-plugin</artifactId>
  281. <!-- Version specified in parent POM -->
  282. <configuration>
  283. <antlr4>
  284. <antlr4Formatter />
  285. </antlr4>
  286. <java combine.self="override">
  287. <endWithNewline />
  288. <importOrder />
  289. <indent>
  290. <spaces>true</spaces>
  291. </indent>
  292. <removeUnusedImports />
  293. <trimTrailingWhitespace />
  294. </java>
  295. </configuration>
  296. </plugin>
  297. <plugin>
  298. <artifactId>maven-release-plugin</artifactId>
  299. <!-- Version specified in parent POM -->
  300. <configuration>
  301. <!-- work around for a bug in javadoc plugin that causes the release to fail. see MRELEASE-271 -->
  302. <preparationGoals>-Dspotless.check.skip clean install</preparationGoals>
  303. <goals>-DskipTests -Dspotbugs.skip -Dmaven.checkstyle.skip -Dspotless.check.skip generate-resources javadoc:javadoc deploy</goals>
  304. <pushChanges>false</pushChanges>
  305. <localCheckout>true</localCheckout>
  306. <tagNameFormat>jenkins-@{project.version}</tagNameFormat>
  307. </configuration>
  308. </plugin>
  309. <plugin>
  310. <artifactId>maven-remote-resources-plugin</artifactId>
  311. <!-- Version specified in parent POM -->
  312. <executions>
  313. <execution>
  314. <goals>
  315. <goal>process</goal>
  316. </goals>
  317. <configuration>
  318. <resourceBundles>
  319. <resourceBundle>org.jvnet.hudson:license:1.0</resourceBundle>
  320. </resourceBundles>
  321. </configuration>
  322. </execution>
  323. </executions>
  324. </plugin>
  325. <plugin>
  326. <groupId>org.apache.maven.plugins</groupId>
  327. <artifactId>maven-enforcer-plugin</artifactId>
  328. <!-- Version specified in parent POM -->
  329. <executions>
  330. <execution>
  331. <id>enforce-banned-dependencies</id>
  332. <goals>
  333. <goal>enforce</goal>
  334. </goals>
  335. <configuration>
  336. <rules>
  337. <bannedDependencies>
  338. <excludes combine.children="append">
  339. <exclude>org.sonatype.sisu:sisu-guice</exclude>
  340. <exclude>commons-logging:commons-logging:*:jar:compile</exclude>
  341. <exclude>commons-logging:commons-logging:*:jar:runtime</exclude>
  342. </excludes>
  343. </bannedDependencies>
  344. </rules>
  345. </configuration>
  346. </execution>
  347. </executions>
  348. </plugin>
  349. <plugin>
  350. <groupId>org.apache.maven.plugins</groupId>
  351. <artifactId>maven-checkstyle-plugin</artifactId>
  352. <!-- Version specified in parent POM -->
  353. </plugin>
  354. </plugins>
  355. </build>
  356. <profiles>
  357. <profile>
  358. <id>debug</id>
  359. <activation>
  360. <activeByDefault>true</activeByDefault>
  361. </activation>
  362. </profile>
  363. <profile>
  364. <id>release</id>
  365. <build>
  366. <plugins>
  367. <plugin>
  368. <artifactId>maven-gpg-plugin</artifactId>
  369. <!-- Version specified in parent POM -->
  370. <executions>
  371. <execution>
  372. <id>sign-artifacts</id>
  373. <goals>
  374. <goal>sign</goal>
  375. </goals>
  376. <phase>verify</phase>
  377. </execution>
  378. </executions>
  379. </plugin>
  380. </plugins>
  381. </build>
  382. </profile>
  383. <profile>
  384. <id>lts-release</id>
  385. <properties>
  386. <changelog.url>https://www.jenkins.io/changelog-stable</changelog.url>
  387. </properties>
  388. </profile>
  389. <profile>
  390. <!--
  391. Merged by id with the quick-build profile in the parent POM, which already skips the
  392. linters and static analysis. These additions turn off work that only matters when
  393. producing a release artifact, so a development build spends its time compiling.
  394. -->
  395. <id>quick-build</id>
  396. <properties>
  397. <!-- Only shrinks the packaged jar. -->
  398. <strip.license.comments.skip>true</strip.license.comments.skip>
  399. <remoteresources.skip>true</remoteresources.skip>
  400. <!--
  401. The parent POM cannot set this because a plugin may be producing a test jar, but
  402. nothing in this repository consumes one, so there is nothing to compile tests for.
  403. Note that this means test classes are absent afterwards: drop the profile (or pass
  404. -Dmaven.test.skip=false) before running tests against the build output.
  405. -->
  406. <maven.test.skip>true</maven.test.skip>
  407. </properties>
  408. <build>
  409. <pluginManagement>
  410. <plugins>
  411. <plugin>
  412. <groupId>io.jenkins.tools.maven</groupId>
  413. <artifactId>license-maven-plugin</artifactId>
  414. <!-- Version specified in parent POM -->
  415. <executions>
  416. <execution>
  417. <!--
  418. This plugin has no skip parameter, so unbind it instead. It resolves and
  419. builds the POM of every transitive dependency to produce META-INF/licenses.xml,
  420. which is only read by the "About Jenkins" page; AboutJenkins#getLicensesURL
  421. returns null when it is absent and the view already handles that.
  422. -->
  423. <id>default</id>
  424. <phase>none</phase>
  425. </execution>
  426. </executions>
  427. </plugin>
  428. </plugins>
  429. </pluginManagement>
  430. </build>
  431. </profile>
  432. <profile>
  433. <id>yarn-execution</id>
  434. <activation>
  435. <file>
  436. <exists>package.json</exists>
  437. </file>
  438. </activation>
  439. <build>
  440. <plugins>
  441. <plugin>
  442. <groupId>com.github.eirslett</groupId>
  443. <artifactId>frontend-maven-plugin</artifactId>
  444. <version>2.0.2</version>
  445. <executions>
  446. <execution>
  447. <id>install node and corepack</id>
  448. <goals>
  449. <goal>install-node-and-corepack</goal>
  450. </goals>
  451. <phase>initialize</phase>
  452. <configuration>
  453. <nodeVersion>v${node.version}</nodeVersion>
  454. <nodeDownloadRoot>https://repo.jenkins-ci.org/nodejs-dist/</nodeDownloadRoot>
  455. <skip>${skip.frontend}</skip>
  456. </configuration>
  457. </execution>
  458. <execution>
  459. <id>yarn install</id>
  460. <goals>
  461. <goal>corepack</goal>
  462. </goals>
  463. <phase>initialize</phase>
  464. <configuration>
  465. <arguments>yarn install</arguments>
  466. <skip>${skip.frontend}</skip>
  467. </configuration>
  468. </execution>
  469. <execution>
  470. <id>yarn build</id>
  471. <goals>
  472. <goal>corepack</goal>
  473. </goals>
  474. <phase>generate-sources</phase>
  475. <configuration>
  476. <arguments>yarn build</arguments>
  477. <skip>${skip.frontend}</skip>
  478. </configuration>
  479. </execution>
  480. <execution>
  481. <id>yarn test</id>
  482. <goals>
  483. <goal>corepack</goal>
  484. </goals>
  485. <phase>test</phase>
  486. <configuration>
  487. <arguments>yarn test</arguments>
  488. </configuration>
  489. </execution>
  490. </executions>
  491. </plugin>
  492. <plugin>
  493. <groupId>org.apache.maven.plugins</groupId>
  494. <artifactId>maven-clean-plugin</artifactId>
  495. <!-- Version specified in grandparent POM -->
  496. <configuration>
  497. <!--
  498. The node toolchain and the downloaded packages are deliberately left alone:
  499. deleting them costs several seconds of its own and then forces the node install
  500. and "yarn install" to start from nothing on every build, and since .yarnrc.yml
  501. sets enableGlobalCache: false, .yarn holds the only copy of the package cache.
  502. "yarn install" runs at initialize on every build, so stale dependencies still
  503. heal themselves. Use -Dclean.node to delete them anyway.
  504. -->
  505. <filesets>
  506. <fileset>
  507. <directory>war/src/main/webapp/jsbundles</directory>
  508. <followSymlinks>false</followSymlinks>
  509. </fileset>
  510. </filesets>
  511. </configuration>
  512. </plugin>
  513. </plugins>
  514. </build>
  515. </profile>
  516. <profile>
  517. <id>yarn-ci-lint</id>
  518. <activation>
  519. <property>
  520. <name>env.CI</name>
  521. </property>
  522. <file>
  523. <exists>package.json</exists>
  524. </file>
  525. </activation>
  526. <build>
  527. <plugins>
  528. <plugin>
  529. <groupId>com.github.eirslett</groupId>
  530. <artifactId>frontend-maven-plugin</artifactId>
  531. <version>2.0.2</version>
  532. <executions>
  533. <execution>
  534. <id>yarn lint:ci</id>
  535. <goals>
  536. <goal>corepack</goal>
  537. </goals>
  538. <phase>test</phase>
  539. <configuration>
  540. <arguments>yarn lint:ci</arguments>
  541. <skip>${yarn.lint.skip}</skip>
  542. </configuration>
  543. </execution>
  544. <execution>
  545. <id>prettier</id>
  546. <goals>
  547. <goal>corepack</goal>
  548. </goals>
  549. <phase>test</phase>
  550. <configuration>
  551. <arguments>yarn exec prettier --check .</arguments>
  552. <skip>${yarn.lint.skip}</skip>
  553. <testFailureIgnore>false</testFailureIgnore>
  554. </configuration>
  555. </execution>
  556. </executions>
  557. </plugin>
  558. </plugins>
  559. </build>
  560. </profile>
  561. <profile>
  562. <id>yarn-lint</id>
  563. <activation>
  564. <property>
  565. <name>!env.CI</name>
  566. </property>
  567. <file>
  568. <exists>package.json</exists>
  569. </file>
  570. </activation>
  571. <build>
  572. <plugins>
  573. <plugin>
  574. <groupId>com.github.eirslett</groupId>
  575. <artifactId>frontend-maven-plugin</artifactId>
  576. <version>2.0.2</version>
  577. <executions>
  578. <execution>
  579. <id>yarn lint</id>
  580. <goals>
  581. <goal>corepack</goal>
  582. </goals>
  583. <phase>test</phase>
  584. <configuration>
  585. <arguments>yarn lint</arguments>
  586. <skip>${yarn.lint.skip}</skip>
  587. </configuration>
  588. </execution>
  589. </executions>
  590. </plugin>
  591. </plugins>
  592. </build>
  593. </profile>
  594. <profile>
  595. <!-- When changing branches that touch frontend assets this can be a good idea but not for every fresh build. -->
  596. <id>clean-node</id>
  597. <activation>
  598. <property>
  599. <name>clean.node</name>
  600. </property>
  601. </activation>
  602. <build>
  603. <plugins>
  604. <plugin>
  605. <groupId>org.apache.maven.plugins</groupId>
  606. <artifactId>maven-clean-plugin</artifactId>
  607. <!-- Version specified in grandparent POM -->
  608. <configuration>
  609. <!-- Replaced rather than appended, because merging repeated <fileset> elements
  610. across profiles is not well defined. -->
  611. <filesets combine.self="override">
  612. <fileset>
  613. <directory>war/src/main/webapp/jsbundles</directory>
  614. <followSymlinks>false</followSymlinks>
  615. </fileset>
  616. <fileset>
  617. <directory>.yarn</directory>
  618. <followSymlinks>false</followSymlinks>
  619. </fileset>
  620. <fileset>
  621. <directory>node</directory>
  622. <followSymlinks>false</followSymlinks>
  623. </fileset>
  624. <fileset>
  625. <directory>node_modules</directory>
  626. <followSymlinks>false</followSymlinks>
  627. </fileset>
  628. </filesets>
  629. </configuration>
  630. </plugin>
  631. </plugins>
  632. </build>
  633. </profile>
  634. <profile>
  635. <id>disable-symlink-tests</id>
  636. <activation>
  637. <os>
  638. <family>windows</family>
  639. </os>
  640. <property>
  641. <name>!env.CI</name>
  642. </property>
  643. </activation>
  644. <properties>
  645. <disable.symlink.tests>true</disable.symlink.tests>
  646. </properties>
  647. </profile>
  648. </profiles>
  649. </project>