You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

pom.xml 30KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <!-- The AspectJ root POM is the parent, but this module is not a submodule -->
  6. <parent>
  7. <groupId>org.aspectj</groupId>
  8. <artifactId>aspectj-parent</artifactId>
  9. <version>1.9.20-SNAPSHOT</version>
  10. </parent>
  11. <artifactId>lib</artifactId>
  12. <description>
  13. This module downloads + installs libraries used by many tests, especially those running as Ant jobs. You should not
  14. build this module during every build because it is somewhat slow, downloading stuff from 3rd-party websites,
  15. unzipping some libraries (e.g. a full Ant distribution) and creating new ZIP files (e.g. source JARs, compound JARs
  16. containing multiple libraries).
  17. So just run 'mvn compile' once after cloning the AspectJ repository and you should be all set to subsequently build
  18. AspectJ itself. If you forget this step, a Maven Enforcer rule in the AspectJ root POM will fail the build and
  19. remind you to build this module.
  20. Normally you never have to call 'mvn clean' here, but if for some reason the installed libraries are in an
  21. inconsistent state (e.g. after an incomplete download), you can do so and then run 'mvn compile' again.
  22. BTW, running 'mvn compile' multiple times will not repeat any download via Maven Dependency or Download Maven
  23. plugins, but repeat all zip/unzip steps in TrueZIP Maven plugin. So try not to call it unnecessarily.
  24. </description>
  25. <!-- TODO: Add lib (for now, then finally lib) to .gitignore -->
  26. <properties>
  27. <lib.provisioned.marker>provisioned.marker</lib.provisioned.marker>
  28. <lib.ant.name>apache-ant</lib.ant.name>
  29. <lib.ant.artifact>${lib.ant.name}-${lib.ant.version}</lib.ant.artifact>
  30. </properties>
  31. <profiles>
  32. <!-- Profile for provisioning - i.e. downloading and (un)zipping - libraries needed during the build -->
  33. <profile>
  34. <id>provision-libs</id>
  35. <!-- If marker file is missing, activate profile and provision all libraries -->
  36. <activation>
  37. <file>
  38. <missing>${lib.provisioned.marker}</missing>
  39. </file>
  40. </activation>
  41. <build>
  42. <plugins>
  43. <!-- Download libraries + source code which are unavailable in Maven repositories like Maven Central -->
  44. <plugin>
  45. <groupId>com.googlecode.maven-download-plugin</groupId>
  46. <artifactId>download-maven-plugin</artifactId>
  47. <version>1.6.7</version>
  48. <configuration>
  49. <!-- Detect previously failed downloads by verifying checksums of existing files -> retry -->
  50. <alwaysVerifyChecksum>true</alwaysVerifyChecksum>
  51. </configuration>
  52. <executions>
  53. <execution>
  54. <id>download-ant-binaries</id>
  55. <phase>generate-resources</phase>
  56. <goals>
  57. <goal>wget</goal>
  58. </goals>
  59. <configuration>
  60. <url>https://archive.apache.org/dist/ant/binaries/${lib.ant.artifact}-bin.zip</url>
  61. <outputDirectory>ant</outputDirectory>
  62. <sha1>3fa9f816a0c4c63249efad8e6225f2e83794f0c0</sha1>
  63. </configuration>
  64. </execution>
  65. <execution>
  66. <id>download-ant-sources</id>
  67. <phase>generate-resources</phase>
  68. <goals>
  69. <goal>wget</goal>
  70. </goals>
  71. <configuration>
  72. <url>https://archive.apache.org/dist/ant/source/${lib.ant.artifact}-src.zip</url>
  73. <outputDirectory>ant</outputDirectory>
  74. <sha1>b9f3c8c31bb6c9069ad5b655059a17769af12f20</sha1>
  75. </configuration>
  76. </execution>
  77. <execution>
  78. <id>download-beanutils-sources</id>
  79. <phase>generate-resources</phase>
  80. <goals>
  81. <goal>wget</goal>
  82. </goals>
  83. <configuration>
  84. <url>https://github.com/apache/commons-beanutils/archive/refs/tags/${lib.commons.beanutils.tag}.zip</url>
  85. <outputDirectory>commons</outputDirectory>
  86. <outputFileName>commons-beanutils-${lib.commons.beanutils.version}-sources.jar</outputFileName>
  87. <sha1>b2c02afe7e6475cd7c811932b8415d171a8afa00</sha1>
  88. </configuration>
  89. </execution>
  90. <execution>
  91. <id>download-collections-sources</id>
  92. <phase>generate-resources</phase>
  93. <goals>
  94. <goal>wget</goal>
  95. </goals>
  96. <configuration>
  97. <url>https://github.com/apache/commons-collections/archive/refs/tags/${lib.commons.collections.tag}.zip</url>
  98. <outputDirectory>commons</outputDirectory>
  99. <outputFileName>commons-collections-${lib.commons.collections.version}-sources.jar</outputFileName>
  100. <sha1>824cacd0aafe21a94fb142388fd62f28a12df5ef</sha1>
  101. </configuration>
  102. </execution>
  103. <execution>
  104. <id>download-digester-sources</id>
  105. <phase>generate-resources</phase>
  106. <goals>
  107. <goal>wget</goal>
  108. </goals>
  109. <configuration>
  110. <url>https://github.com/apache/commons-digester/archive/refs/tags/${lib.commons.digester.tag}.zip</url>
  111. <outputDirectory>commons</outputDirectory>
  112. <outputFileName>commons-digester-${lib.commons.digester.version}-sources.jar</outputFileName>
  113. <sha1>49f653c7ea726301c564f9662b72c051fee9390a</sha1>
  114. </configuration>
  115. </execution>
  116. <execution>
  117. <id>download-logging-sources</id>
  118. <phase>generate-resources</phase>
  119. <goals>
  120. <goal>wget</goal>
  121. </goals>
  122. <configuration>
  123. <url>https://github.com/apache/commons-logging/archive/refs/tags/${lib.commons.logging.tag}.zip</url>
  124. <outputDirectory>commons</outputDirectory>
  125. <outputFileName>commons-logging-${lib.commons.logging.version}-sources.jar</outputFileName>
  126. <sha1>c61a373f6d50ff8fcfba900934f7254d44f9735b</sha1>
  127. </configuration>
  128. </execution>
  129. <execution>
  130. <id>download-docbook-dtd</id>
  131. <phase>generate-resources</phase>
  132. <goals>
  133. <goal>wget</goal>
  134. </goals>
  135. <configuration>
  136. <url>https://www.oasis-open.org/docbook/xml/4.1.2/docbkx412.zip</url>
  137. <outputDirectory>docbook</outputDirectory>
  138. <outputFileName>docbkx412.zip</outputFileName>
  139. <sha1>b9ae7a41056bfaf885581812d60651b7b5531519</sha1>
  140. </configuration>
  141. </execution>
  142. <execution>
  143. <id>download-docbook-xsl</id>
  144. <phase>generate-resources</phase>
  145. <goals>
  146. <goal>wget</goal>
  147. </goals>
  148. <configuration>
  149. <url>https://sourceforge.net/projects/docbook/files/OldFiles/docbook-xsl-1.44.zip/download</url>
  150. <outputDirectory>docbook</outputDirectory>
  151. <outputFileName>docbook-xsl-1.44.zip</outputFileName>
  152. <sha1>626e7bee806ea14812f6f95cc2d187ab6ba9114a</sha1>
  153. </configuration>
  154. </execution>
  155. </executions>
  156. </plugin>
  157. <!-- Download libraries + source code which are available in Maven repositories like Maven Central -->
  158. <plugin>
  159. <groupId>org.apache.maven.plugins</groupId>
  160. <artifactId>maven-dependency-plugin</artifactId>
  161. <version>3.1.2</version>
  162. <executions>
  163. <execution>
  164. <id>copy</id>
  165. <phase>generate-resources</phase>
  166. <goals>
  167. <goal>copy</goal>
  168. </goals>
  169. <configuration>
  170. <artifactItems>
  171. <artifactItem>
  172. <groupId>org.aspectj</groupId>
  173. <artifactId>org.eclipse.jdt.core</artifactId>
  174. <version>${jdt.core.version}</version>
  175. <type>jar</type>
  176. <overWrite>false</overWrite>
  177. <outputDirectory>jdtcore-aj</outputDirectory>
  178. <destFileName>jdtcore-for-aspectj.jar</destFileName>
  179. </artifactItem>
  180. <artifactItem>
  181. <groupId>org.aspectj</groupId>
  182. <artifactId>org.eclipse.jdt.core</artifactId>
  183. <version>${jdt.core.version}</version>
  184. <type>java-source</type>
  185. <classifier>sources</classifier>
  186. <overWrite>false</overWrite>
  187. <outputDirectory>jdtcore-aj</outputDirectory>
  188. <destFileName>jdtcore-for-aspectj-src.zip</destFileName>
  189. </artifactItem>
  190. <artifactItem>
  191. <!-- Binary is identical to committed version in branch 'jdtcore-new' -->
  192. <groupId>com.googlecode.jarjar</groupId>
  193. <artifactId>jarjar</artifactId>
  194. <version>1.3</version>
  195. <type>jar</type>
  196. <overWrite>false</overWrite>
  197. <outputDirectory>jarjar</outputDirectory>
  198. <destFileName>jarjar-1.3.jar</destFileName>
  199. </artifactItem>
  200. <artifactItem>
  201. <!-- Binary is identical to committed version -->
  202. <groupId>junit</groupId>
  203. <artifactId>junit</artifactId>
  204. <version>3.8.1</version>
  205. <type>jar</type>
  206. <overWrite>false</overWrite>
  207. <outputDirectory>junit</outputDirectory>
  208. <destFileName>junit.jar</destFileName>
  209. </artifactItem>
  210. <artifactItem>
  211. <!-- Binary is identical to committed version -->
  212. <!-- TODO: Is this redundant JUnit JAR in ant/lib really necessary? If so, why? -->
  213. <groupId>junit</groupId>
  214. <artifactId>junit</artifactId>
  215. <version>3.8.1</version>
  216. <type>jar</type>
  217. <overWrite>false</overWrite>
  218. <outputDirectory>ant/lib</outputDirectory>
  219. <destFileName>junit.jar</destFileName>
  220. </artifactItem>
  221. <artifactItem>
  222. <!-- Binary is identical to committed version -->
  223. <groupId>junit</groupId>
  224. <artifactId>junit</artifactId>
  225. <version>3.8.1</version>
  226. <type>jar</type>
  227. <classifier>sources</classifier>
  228. <overWrite>false</overWrite>
  229. <outputDirectory>junit</outputDirectory>
  230. <destFileName>junit-src.zip</destFileName>
  231. </artifactItem>
  232. <!-- Jython does not seem to be used anywhere in AspectJ -->
  233. <artifactItem>
  234. <!-- Binary is a bit newer than committed version, but produces identical results in 'docs' -->
  235. <groupId>saxon</groupId>
  236. <artifactId>saxon</artifactId>
  237. <version>6.5.3</version>
  238. <type>jar</type>
  239. <overWrite>false</overWrite>
  240. <outputDirectory>saxon</outputDirectory>
  241. <destFileName>saxon.jar</destFileName>
  242. </artifactItem>
  243. <artifactItem>
  244. <!-- Binary is identical to committed version -->
  245. <groupId>regexp</groupId>
  246. <artifactId>regexp</artifactId>
  247. <version>${lib.regexp.version}</version>
  248. <type>jar</type>
  249. <overWrite>false</overWrite>
  250. <outputDirectory>regexp</outputDirectory>
  251. <destFileName>jakarta-regexp-1.2.jar</destFileName>
  252. </artifactItem>
  253. <!--
  254. About commons.jar + commons-src.zip:
  255. - Beanutils Binaries are commons-beanutils:commons-beanutils:1.4 (no sources on Maven Central, but
  256. https://github.com/apache/commons-beanutils/archive/refs/tags/BEANUTILS_1_4.zip)
  257. - Collections: Binaries are commons-collections:commons-collections:2.0 (no sources on Maven Central, but
  258. https://github.com/apache/commons-collections/archive/refs/tags/collections-2.0.zip)
  259. - Digester: Binaries are commons-digester:commons-digester:1.3 (no sources on Maven Central, but
  260. https://github.com/apache/commons-digester/archive/refs/tags/DIGESTER_1_3.zip)
  261. - Logging: Binaries are commons-logging:commons-logging:1.0.1 (no sources on Maven Central, but
  262. https://github.com/apache/commons-logging/archive/refs/tags/LOGGING_1_0_1.zip)
  263. -->
  264. <artifactItem>
  265. <!-- Binary is identical to committed version -->
  266. <!-- TODO: not used anywhere -> remove -->
  267. <groupId>commons-beanutils</groupId>
  268. <artifactId>commons-beanutils</artifactId>
  269. <version>${lib.commons.beanutils.version}</version>
  270. <type>jar</type>
  271. <overWrite>false</overWrite>
  272. <outputDirectory>commons</outputDirectory>
  273. <destFileName>commons-beanutils-${lib.commons.beanutils.version}.jar</destFileName>
  274. </artifactItem>
  275. <artifactItem>
  276. <!-- Binary is identical to committed version -->
  277. <!-- TODO: not used anywhere -> remove -->
  278. <groupId>commons-collections</groupId>
  279. <artifactId>commons-collections</artifactId>
  280. <version>2.0</version>
  281. <type>jar</type>
  282. <overWrite>false</overWrite>
  283. <outputDirectory>commons</outputDirectory>
  284. <destFileName>commons-collections-2.0.jar</destFileName>
  285. </artifactItem>
  286. <artifactItem>
  287. <!-- Binary is identical to committed version -->
  288. <!-- TODO: used in module 'testing' -->
  289. <groupId>commons-digester</groupId>
  290. <artifactId>commons-digester</artifactId>
  291. <version>${lib.commons.digester.version}</version>
  292. <type>jar</type>
  293. <overWrite>false</overWrite>
  294. <outputDirectory>commons</outputDirectory>
  295. <destFileName>commons-digester-${lib.commons.digester.version}.jar</destFileName>
  296. </artifactItem>
  297. <artifactItem>
  298. <!-- Binary is identical to committed version -->
  299. <!-- TODO: used in modules 'org.aspectj.matcher' -->
  300. <groupId>commons-logging</groupId>
  301. <artifactId>commons-logging</artifactId>
  302. <version>${lib.commons.logging.version}</version>
  303. <type>jar</type>
  304. <overWrite>false</overWrite>
  305. <outputDirectory>commons</outputDirectory>
  306. <destFileName>commons-logging-${lib.commons.logging.version}.jar</destFileName>
  307. </artifactItem>
  308. <!-- Libraries used to create HTML docs from XML DocBook files -->
  309. <artifactItem>
  310. <!-- Binary is identical to committed version -->
  311. <groupId>fop</groupId>
  312. <artifactId>fop</artifactId>
  313. <version>0.20.5</version>
  314. <type>jar</type>
  315. <overWrite>false</overWrite>
  316. <outputDirectory>docbook</outputDirectory>
  317. <destFileName>fop.jar</destFileName>
  318. </artifactItem>
  319. <artifactItem>
  320. <!-- Binary is identical to committed version -->
  321. <groupId>batik</groupId>
  322. <artifactId>batik-1.5-fop</artifactId>
  323. <version>0.20-5</version>
  324. <type>jar</type>
  325. <overWrite>false</overWrite>
  326. <outputDirectory>docbook</outputDirectory>
  327. <destFileName>batik.jar</destFileName>
  328. </artifactItem>
  329. </artifactItems>
  330. </configuration>
  331. </execution>
  332. </executions>
  333. </plugin>
  334. <!-- (Un)zip downloaded libraries the way our build needs them -->
  335. <plugin>
  336. <groupId>org.codehaus.mojo</groupId>
  337. <artifactId>truezip-maven-plugin</artifactId>
  338. <!--
  339. The TrueZIP plugin can seamlessly copy out of or into (nested) ZIP files as if they were normal file system
  340. paths. No additional moves and deletes with Antrun are necessary.
  341. -->
  342. <executions>
  343. <execution>
  344. <id>unzip-ant-binaries</id>
  345. <phase>process-resources</phase>
  346. <goals>
  347. <goal>copy</goal>
  348. </goals>
  349. <configuration>
  350. <verbose>true</verbose>
  351. <fileset>
  352. <directory>ant/${lib.ant.artifact}-bin.zip/${lib.ant.artifact}</directory>
  353. <outputDirectory>ant</outputDirectory>
  354. </fileset>
  355. </configuration>
  356. </execution>
  357. <execution>
  358. <id>zip-ant-sources</id>
  359. <phase>process-resources</phase>
  360. <goals>
  361. <goal>copy</goal>
  362. </goals>
  363. <configuration>
  364. <verbose>true</verbose>
  365. <fileset>
  366. <directory>ant/${lib.ant.artifact}-src.zip/${lib.ant.artifact}/src/main</directory>
  367. <outputDirectory>ant/ant-src.zip</outputDirectory>
  368. </fileset>
  369. </configuration>
  370. </execution>
  371. <execution>
  372. <id>zip-beanutils-binaries</id>
  373. <phase>process-resources</phase>
  374. <goals>
  375. <goal>copy</goal>
  376. </goals>
  377. <configuration>
  378. <verbose>true</verbose>
  379. <fileset>
  380. <directory>commons/commons-beanutils-${lib.commons.beanutils.version}.jar</directory>
  381. <outputDirectory>commons/commons.jar</outputDirectory>
  382. </fileset>
  383. </configuration>
  384. </execution>
  385. <execution>
  386. <id>zip-collections-binaries</id>
  387. <phase>process-resources</phase>
  388. <goals>
  389. <goal>copy</goal>
  390. </goals>
  391. <configuration>
  392. <verbose>true</verbose>
  393. <fileset>
  394. <directory>commons/commons-collections-${lib.commons.collections.version}.jar</directory>
  395. <outputDirectory>commons/commons.jar</outputDirectory>
  396. </fileset>
  397. </configuration>
  398. </execution>
  399. <execution>
  400. <id>zip-digester-binaries</id>
  401. <phase>process-resources</phase>
  402. <goals>
  403. <goal>copy</goal>
  404. </goals>
  405. <configuration>
  406. <verbose>true</verbose>
  407. <fileset>
  408. <directory>commons/commons-digester-${lib.commons.digester.version}.jar</directory>
  409. <outputDirectory>commons/commons.jar</outputDirectory>
  410. </fileset>
  411. </configuration>
  412. </execution>
  413. <execution>
  414. <id>zip-logging-binaries</id>
  415. <phase>process-resources</phase>
  416. <goals>
  417. <goal>copy</goal>
  418. </goals>
  419. <configuration>
  420. <verbose>true</verbose>
  421. <fileset>
  422. <directory>commons/commons-logging-${lib.commons.logging.version}.jar</directory>
  423. <outputDirectory>commons/commons.jar</outputDirectory>
  424. </fileset>
  425. </configuration>
  426. </execution>
  427. <execution>
  428. <id>zip-beanutils-sources</id>
  429. <phase>process-resources</phase>
  430. <goals>
  431. <goal>copy</goal>
  432. </goals>
  433. <configuration>
  434. <verbose>true</verbose>
  435. <fileset>
  436. <directory>commons/commons-beanutils-${lib.commons.beanutils.version}-sources.jar/commons-beanutils-${lib.commons.beanutils.tag}/src/java</directory>
  437. <outputDirectory>commons/commons-src.zip</outputDirectory>
  438. </fileset>
  439. </configuration>
  440. </execution>
  441. <execution>
  442. <id>zip-collections-sources</id>
  443. <phase>process-resources</phase>
  444. <goals>
  445. <goal>copy</goal>
  446. </goals>
  447. <configuration>
  448. <verbose>true</verbose>
  449. <fileset>
  450. <directory>commons/commons-collections-${lib.commons.collections.version}-sources.jar/commons-collections-${lib.commons.collections.tag}/src/java</directory>
  451. <outputDirectory>commons/commons-src.zip</outputDirectory>
  452. </fileset>
  453. </configuration>
  454. </execution>
  455. <execution>
  456. <id>zip-digester-sources</id>
  457. <phase>process-resources</phase>
  458. <goals>
  459. <goal>copy</goal>
  460. </goals>
  461. <configuration>
  462. <verbose>true</verbose>
  463. <fileset>
  464. <directory>commons/commons-digester-${lib.commons.digester.version}-sources.jar/commons-digester-${lib.commons.digester.tag}/src/java</directory>
  465. <outputDirectory>commons/commons-src.zip</outputDirectory>
  466. </fileset>
  467. </configuration>
  468. </execution>
  469. <execution>
  470. <id>zip-logging-sources</id>
  471. <phase>process-resources</phase>
  472. <goals>
  473. <goal>copy</goal>
  474. </goals>
  475. <configuration>
  476. <verbose>true</verbose>
  477. <fileset>
  478. <directory>commons/commons-logging-${lib.commons.logging.version}-sources.jar/commons-logging-${lib.commons.logging.tag}/src/java</directory>
  479. <outputDirectory>commons/commons-src.zip</outputDirectory>
  480. </fileset>
  481. </configuration>
  482. </execution>
  483. <execution>
  484. <id>unzip-docbook-dtd</id>
  485. <phase>process-resources</phase>
  486. <goals>
  487. <goal>copy</goal>
  488. </goals>
  489. <configuration>
  490. <verbose>true</verbose>
  491. <fileset>
  492. <directory>docbook/docbkx412.zip</directory>
  493. <outputDirectory>docbook/docbook-dtd</outputDirectory>
  494. </fileset>
  495. </configuration>
  496. </execution>
  497. <execution>
  498. <id>unzip-docbook-xsl</id>
  499. <phase>process-resources</phase>
  500. <goals>
  501. <goal>copy</goal>
  502. </goals>
  503. <configuration>
  504. <verbose>true</verbose>
  505. <fileset>
  506. <directory>docbook/docbook-xsl-1.44.zip/docbook-xsl-1.44</directory>
  507. <outputDirectory>docbook/docbook-xsl</outputDirectory>
  508. </fileset>
  509. </configuration>
  510. </execution>
  511. </executions>
  512. </plugin>
  513. <!--
  514. After all libraries have been provisioned successfully, create a marker file in order to avoid provisioning
  515. them again during the next build
  516. -->
  517. <plugin>
  518. <groupId>org.codehaus.mojo</groupId>
  519. <artifactId>build-helper-maven-plugin</artifactId>
  520. <executions>
  521. <execution>
  522. <id>create-marker-file</id>
  523. <phase>process-resources</phase>
  524. <goals>
  525. <goal>bsh-property</goal>
  526. </goals>
  527. <configuration>
  528. <source><![CDATA[
  529. myFile = new File(project.getBasedir(), "${lib.provisioned.marker}");
  530. print("Finished provisioning libraries, creating marker file " + myFile.getCanonicalPath());
  531. myFile.createNewFile();
  532. ]]></source>
  533. </configuration>
  534. </execution>
  535. </executions>
  536. </plugin>
  537. </plugins>
  538. </build>
  539. <dependencies>
  540. <dependency>
  541. <groupId>org.aspectj</groupId>
  542. <artifactId>org.eclipse.jdt.core</artifactId>
  543. </dependency>
  544. </dependencies>
  545. </profile>
  546. <!-- Profile for including provisioned libraries when running 'mvn clean'; inactive by default, activate manually -->
  547. <profile>
  548. <id>clean-libs</id>
  549. <build>
  550. <plugins>
  551. <plugin>
  552. <groupId>org.apache.maven.plugins</groupId>
  553. <artifactId>maven-clean-plugin</artifactId>
  554. <executions>
  555. <execution>
  556. <id>clean-up-libs</id>
  557. <phase>clean</phase>
  558. <goals>
  559. <goal>clean</goal>
  560. </goals>
  561. <configuration>
  562. <filesets>
  563. <fileset>
  564. <directory>.</directory>
  565. <includes>
  566. <include>${lib.provisioned.marker}</include>
  567. <include>ant/**</include>
  568. <include>commons/**</include>
  569. <include>docbook/**</include>
  570. <include>jarjar/**</include>
  571. <include>jdtcore-aj/**</include>
  572. <include>junit/**</include>
  573. <include>regexp/**</include>
  574. <include>saxon/**</include>
  575. </includes>
  576. <followSymlinks>false</followSymlinks>
  577. </fileset>
  578. </filesets>
  579. </configuration>
  580. </execution>
  581. </executions>
  582. </plugin>
  583. </plugins>
  584. </build>
  585. </profile>
  586. </profiles>
  587. <build>
  588. <plugins>
  589. <!--
  590. Heuristic consistency check for existence of provisioned library files. Do not just rely on
  591. ${lib.provisioned.marker} file.
  592. -->
  593. <plugin>
  594. <groupId>org.apache.maven.plugins</groupId>
  595. <artifactId>maven-enforcer-plugin</artifactId>
  596. <executions>
  597. <execution>
  598. <id>enforce-libraries-exist</id>
  599. <phase>compile</phase>
  600. <goals>
  601. <goal>enforce</goal>
  602. </goals>
  603. <configuration>
  604. <rules>
  605. <requireFilesExist>
  606. <!--
  607. Do NOT insert any line breaks + indentation inside the message, keep it on a single line.
  608. Maven Enforcer does not strip any whitespace or unindent, which looks quite ugly on the console.
  609. -->
  610. <message>
  611. There is an inconsistency in module subdirectory 'lib'. Please run 'mvn --projects lib -P clean-libs clean compile'. This should take care of cleaning and freshly downloading all necessary libraries to that directory, where some tests expect them to be.
  612. </message>
  613. <files>
  614. <file>${lib.provisioned.marker}</file>
  615. <file>ant/bin/ant.bat</file>
  616. <file>ant/lib/junit.jar</file>
  617. <file>commons/commons.jar</file>
  618. <file>docbook/docbook-dtd/docbookx.dtd</file>
  619. <file>docbook/docbook-xsl/html/chunk.xsl</file>
  620. <file>docbook/fop.jar</file>
  621. <file>docbook/batik.jar</file>
  622. <file>jarjar/jarjar-1.3.jar</file>
  623. <file>jdtcore-aj/jdtcore-for-aspectj.jar</file>
  624. <file>junit/junit.jar</file>
  625. <file>regexp/jakarta-regexp-1.2.jar</file>
  626. <file>saxon/saxon.jar</file>
  627. </files>
  628. </requireFilesExist>
  629. </rules>
  630. <fail>true</fail>
  631. </configuration>
  632. </execution>
  633. </executions>
  634. </plugin>
  635. </plugins>
  636. </build>
  637. </project>