apache-ignite
/
pom.xml
659 строк · 33.8 Кб
1<?xml version="1.0" encoding="UTF-8"?>
2
3<!--
4Licensed to the Apache Software Foundation (ASF) under one or more
5contributor license agreements. See the NOTICE file distributed with
6this work for additional information regarding copyright ownership.
7The ASF licenses this file to You under the Apache License, Version 2.0
8(the "License"); you may not use this file except in compliance with
9the License. You may obtain a copy of the License at
10
11http://www.apache.org/licenses/LICENSE-2.0
12
13Unless required by applicable law or agreed to in writing, software
14distributed under the License is distributed on an "AS IS" BASIS,
15WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16See the License for the specific language governing permissions and
17limitations under the License.
18-->
19
20<!--
21POM file.
22-->
23<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">24<modelVersion>4.0.0</modelVersion>25
26<parent>27<groupId>org.apache.ignite</groupId>28<artifactId>ignite-parent</artifactId>29<version>${revision}</version>30<relativePath>parent/pom.xml</relativePath>31</parent>32
33<artifactId>apache-ignite</artifactId>34<packaging>pom</packaging>35
36<modules>37<module>modules/checkstyle</module>38<module>parent</module>39<module>parent-internal</module>40<module>modules/bom</module>41<module>modules/tools</module>42<module>modules/core</module>43<module>modules/compress</module>44<module>modules/dev-utils</module>45<module>modules/direct-io</module>46<module>modules/extdata/p2p</module>47<module>modules/extdata/uri</module>48<module>modules/extdata/platform</module>49<module>modules/extdata/pluggable</module>50<module>modules/clients</module>51<module>modules/spring</module>52<module>modules/web</module>53<module>modules/urideploy</module>54<module>modules/indexing</module>55<module>modules/rest-http</module>56<module>modules/jta</module>57<module>modules/log4j2</module>58<module>modules/slf4j</module>59<module>modules/jcl</module>60<module>modules/codegen</module>61<module>modules/zookeeper</module>62<module>modules/web/ignite-appserver-test</module>63<module>modules/web/ignite-websphere-test</module>64<module>modules/kubernetes</module>65<module>modules/sqlline</module>66<module>modules/opencensus</module>67<module>modules/control-utility</module>68<module>modules/calcite</module>69</modules>70
71<profiles>72<profile>73<id>all-java</id> <!-- used to update project versions and check all modules compilation -->74<modules> <!-- sorted alphabetically -->75<module>examples</module>76<module>modules/benchmarks</module>77<module>modules/compatibility</module>78<module>modules/ducktests</module>79<module>modules/numa-allocator</module>80<module>modules/schedule</module>81<module>modules/yardstick</module>82</modules>83</profile>84
85<profile>86<id>all-other</id> <!-- used to update project versions and check all modules compilation -->87<modules> <!-- sorted alphabetically -->88</modules>89</profile>90
91<profile>92<id>ducktests</id>93<modules>94<module>modules/ducktests</module>95</modules>96</profile>97
98<profile>99<id>numa-allocator</id>100<modules>101<module>modules/numa-allocator</module>102</modules>103</profile>104
105<profile>106<id>compatibility</id>107<modules>108<module>modules/compatibility</module>109</modules>110</profile>111
112<profile>113<id>build-dotnet</id>114<modules>115<module>modules/platforms/dotnet</module>116</modules>117</profile>118
119<profile>120<id>javadoc</id>121<build>122<plugins>123<plugin>124<groupId>org.codehaus.mojo</groupId>125<artifactId>build-helper-maven-plugin</artifactId>126<version>3.0.0</version>127<executions>128<execution>129<id>timestamp-property</id>130<goals>131<goal>timestamp-property</goal>132</goals>133<phase>validate</phase>134<configuration>135<name>current.year</name>136<pattern>yyyy</pattern>137</configuration>138</execution>139</executions>140</plugin>141<plugin>142<groupId>org.apache.maven.plugins</groupId>143<artifactId>maven-javadoc-plugin</artifactId>144<executions>145<execution>146<id>core-javadoc</id>147<goals>148<goal>aggregate-no-fork</goal>149</goals>150<phase>validate</phase>151<configuration>152<!--153For some reason maven-javadoc-plugin 3.0+ doesn't include taglet artifact from
154parent configuration to -tagletpath javadoc parameter.
155-->
156<tagletArtifact>157<groupId>${project.groupId}</groupId>158<artifactId>ignite-tools</artifactId>159<version>${project.version}</version>160</tagletArtifact>161<reportOutputDirectory>${basedir}/target/javadoc</reportOutputDirectory>162<destDir>core</destDir>163<subpackages>org.apache.ignite -exclude org.apache.ignite.codegen:org.apache.ignite.examples:org.apache.ignite.internal:org.apache.ignite.schema:org.apache.ignite.tests:org.apache.ignite.tools:org.apache.ignite.util:org.apache.ignite.spi.discovery.tcp.messages:org.apache.ignite.spi.discovery.tcp.internal:org.apache.ignite.spi.communication.tcp.internal:org.apache.ignite.spi.discovery.zk.internal:org.apache.ignite.spi.deployment.uri.scanners:org.apache.ignite.spi.deployment.uri.tasks:org.apache.ignite.yardstick:org.apache.ignite.webtest</subpackages>164</configuration>165</execution>166</executions>167</plugin>168<plugin>169<groupId>org.apache.maven.plugins</groupId>170<artifactId>maven-antrun-plugin</artifactId>171<inherited>false</inherited>172<dependencies>173<dependency>174<groupId>${project.groupId}</groupId>175<artifactId>ignite-tools</artifactId>176<version>${project.version}</version>177</dependency>178</dependencies>179<executions>180<execution>181<id>javadoc-postprocessing-new</id>182<goals>183<goal>run</goal>184</goals>185<phase>initialize</phase>186<configuration>187<target>188<copy todir="${basedir}/target/javadoc/core">189<fileset dir="assembly/docfiles">190<include name="img/**" />191<include name="*.js" />192</fileset>193</copy>194
195<taskdef name="doctask" classname="org.apache.ignite.tools.ant.beautifier.GridJavadocAntTask" />196
197<doctask css="dotted" dir="target/javadoc/core">198<include name="**/*.html" />199<exclude name="overview-frame.html" />200<exclude name="allclasses-frame.html" />201<exclude name="**/class-use/*" />202</doctask>203</target>204</configuration>205</execution>206</executions>207</plugin>208</plugins>209</build>210</profile>211
212<profile>213<id>lgpl</id>214<modules>215<module>modules/schedule</module>216</modules>217</profile>218
219<profile>220<id>licenses</id>221<build>222<plugins>223<plugin><!-- skipping generation of dependencies licenses224to keep clean /maven-shared-archive-resources/META-INF
225to prevent license.txt moving to sources.zip -->
226<groupId>org.apache.maven.plugins</groupId>227<artifactId>maven-remote-resources-plugin</artifactId>228<executions>229<execution>230<id>ignite-dependencies</id>231<goals>232<goal>process</goal>233</goals>234<configuration>235<skip>true</skip>236</configuration>237</execution>238</executions>239</plugin>240</plugins>241</build>242</profile>243
244<profile>245<id>release</id>246<build>247<plugins>248<plugin>249<groupId>org.apache.maven.plugins</groupId>250<artifactId>maven-antrun-plugin</artifactId>251<inherited>false</inherited>252<dependencies>253<dependency>254<groupId>${project.groupId}</groupId>255<artifactId>ignite-tools</artifactId>256<version>${project.version}</version>257</dependency>258</dependencies>259<executions>260<execution>261<id>release-postprocessing</id>262<goals>263<goal>run</goal>264</goals>265<phase>initialize</phase>266<configuration>267<target>268<replaceregexp byline="true">269<regexp pattern="pushd "%~dp0"/\.\./\.\.(\s*&::.+)?" />270<substitution expression="pushd "%~dp0"/.." />271<fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">272<include name="**/*.bat" />273</fileset>274</replaceregexp>275
276<replaceregexp byline="true">277<regexp pattern="IGNITE_HOME_TMP="\$\(dirname "\$\{IGNITE_HOME_TMP\}"\)"(\s*#.*)?" />278<substitution expression="" />279<fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">280<include name="**/*.sh" />281</fileset>282</replaceregexp>283
284<replaceregexp byline="true">285<regexp pattern="set SCRIPTS_HOME=%IGNITE_HOME%\\bin(\s*&::.*)?" />286<substitution expression="set SCRIPTS_HOME=%IGNITE_HOME%\\\\bin" />287<fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">288<include name="**/*.bat" />289</fileset>290</replaceregexp>291
292<replaceregexp byline="true">293<regexp pattern="SCRIPTS_HOME="\$\{IGNITE_HOME_TMP\}/bin"(\s*#.*)?" />294<substitution expression="SCRIPTS_HOME="$${IGNITE_HOME_TMP}/bin"" />295<fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">296<include name="**/*.sh" />297</fileset>298</replaceregexp>299
300<replaceregexp byline="true">301<regexp pattern="\. "\$\{SCRIPTS_HOME\}"/include/build-classpath.sh(\s*#.*)?" />302<substitution expression="" />303<fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">304<include name="**/*.sh" />305</fileset>306</replaceregexp>307
308<replaceregexp byline="true">309<regexp pattern="call "%SCRIPTS_HOME%\\include\\build-classpath.bat"(\s*&::.*)?" />310<substitution expression="" />311<fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">312<include name="**/*.bat" />313</fileset>314</replaceregexp>315
316<replaceregexp byline="true">317<regexp pattern="ENABLE_ASSERTIONS=.*" />318<substitution expression="ENABLE_ASSERTIONS="0"" />319<fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">320<include name="**/*.sh" />321</fileset>322</replaceregexp>323
324<replaceregexp byline="true">325<regexp pattern="ENABLE_ASSERTIONS=.*" />326<substitution expression="ENABLE_ASSERTIONS=0" />327<fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">328<include name="**/*.bat" />329</fileset>330</replaceregexp>331
332<replaceregexp byline="true">333<regexp pattern="-DIGNITE_UPDATE_NOTIFIER=false" />334<substitution expression="" />335<fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">336<include name="**/*.sh" />337<include name="**/*.bat" />338</fileset>339</replaceregexp>340
341<replaceregexp file="${basedir}/target/release-package-${ignite.edition}/examples/pom.xml" byline="true">342<regexp pattern="to_be_replaced_by_ignite_version" />343<substitution expression="${project.version}" />344</replaceregexp>345
346<replaceregexp file="${basedir}/target/release-package-${ignite.edition}/benchmarks/sources/pom.xml" byline="true">347<regexp pattern="to_be_replaced_by_ignite_version" />348<substitution expression="${project.version}" />349</replaceregexp>350
351<chmod dir="${basedir}/target/release-package-${ignite.edition}" perm="755" includes="**/*.sh" />352
353<!--354Line ending bugfix for builds packaged in MS Windows machine to adjust Linux based
355end-of-line characters for Linux shell scripts
356-->
357<fixcrlf srcdir="${basedir}/target/release-package-${ignite.edition}" eol="lf" eof="remove">358<include name="**/*.sh" />359</fixcrlf>360
361<zip destfile="${basedir}/target/bin/${ignite.edition}-${project.version}-bin.zip" encoding="UTF-8">362<zipfileset dir="${basedir}/target/release-package-${ignite.edition}" prefix="${ignite.edition}-${project.version}-bin" filemode="755">363<include name="**/*.sh" />364<include name="**/configure" />365<include name="**/install-sh" />366<include name="**/compile" />367<include name="**/missing" />368</zipfileset>369<zipfileset dir="${basedir}/target/release-package-${ignite.edition}" prefix="${ignite.edition}-${project.version}-bin">370<exclude name="**/*.sh" />371<exclude name="**/configure" />372<exclude name="**/install-sh" />373<exclude name="**/compile" />374<exclude name="**/missing" />375</zipfileset>376</zip>377</target>378</configuration>379</execution>380</executions>381</plugin>382
383<plugin>384<groupId>org.apache.maven.plugins</groupId>385<artifactId>maven-assembly-plugin</artifactId>386<version>2.4</version>387<inherited>false</inherited>388<executions>389<execution>390<id>ignite-dependencies</id>391<phase>validate</phase>392<goals>393<goal>single</goal>394</goals>395<configuration>396<descriptors>397<descriptor>${basedir}/assembly/dependencies-${ignite.edition}.xml</descriptor>398</descriptors>399<outputDirectory>${basedir}/target/release-package-${ignite.edition}</outputDirectory>400<finalName>libs</finalName>401<appendAssemblyId>false</appendAssemblyId>402</configuration>403</execution>404
405<execution>406<id>ignite-release</id>407<phase>validate</phase>408<goals>409<goal>single</goal>410</goals>411<configuration>412<descriptors>413<descriptor>assembly/release-${ignite.edition}.xml</descriptor>414</descriptors>415<finalName>release-package-${ignite.edition}</finalName>416<appendAssemblyId>false</appendAssemblyId>417</configuration>418</execution>419
420<execution>421<id>dependencies-sqlline</id>422<phase>validate</phase>423<goals>424<goal>single</goal>425</goals>426<configuration>427<descriptors>428<descriptor>assembly/dependencies-sqlline.xml</descriptor>429</descriptors>430<outputDirectory>target/release-package-${ignite.edition}</outputDirectory>431<finalName>bin</finalName>432<appendAssemblyId>false</appendAssemblyId>433</configuration>434</execution>435</executions>436</plugin>437
438<plugin>439<groupId>org.apache.maven.plugins</groupId>440<artifactId>maven-deploy-plugin</artifactId>441<configuration>442<skip>true</skip>443</configuration>444</plugin>445</plugins>446</build>447</profile>448
449<profile>450<id>yardstick</id>451<modules>452<module>modules/yardstick</module>453</modules>454</profile>455
456<profile>457<id>benchmarks</id>458<modules>459<module>modules/benchmarks</module>460</modules>461</profile>462
463<profile>464<id>examples</id>465<modules>466<module>examples</module>467</modules>468</profile>469
470<profile>471<id>update-versions</id>472<!-- updates versions -->473<build>474<plugins>475<plugin>476<groupId>org.apache.maven.plugins</groupId>477<artifactId>maven-antrun-plugin</artifactId>478<executions>479<execution>480<id>update-versions</id>481<goals>482<goal>run</goal>483</goals>484<phase>validate</phase>485<configuration>486<target>487<echo message="Update ignite.version in docs" />488
489<replaceregexp byline="true" encoding="UTF-8">490<regexp pattern="(<ignite\.version>).+(</ignite\.version>)" />491<substitution expression="\1${project.version}\2" />492<fileset dir="${project.basedir}/docs/">493<include name="_docs/code-snippets/java/pom.xml" />494</fileset>495</replaceregexp>496
497<replaceregexp byline="true" encoding="UTF-8">498<regexp pattern="(version: ).+" />499<substitution expression="\1${project.version}" />500<fileset dir="${project.basedir}/docs/">501<include name="_config.yml" />502</fileset>503</replaceregexp>504
505<echo message="Update ignite.version in ducktests" />506
507<replaceregexp byline="true" encoding="UTF-8">508<regexp pattern="(__version__ = ).*$"/>509<substitution expression="\1'${project.version}'" />510<fileset dir="${project.basedir}/modules/ducktests/">511<include name="tests/ignitetest/__init__.py" />512</fileset>513</replaceregexp>514
515<echo message="Update ignite.version in C++" />516
517<replaceregexp byline="true" encoding="UTF-8">518<regexp pattern="(project\(.*\s)\d+\.\d+\.\d+.*?(\))" />519<substitution expression="\1${ignite.platform.full.version}\2" />520<fileset dir="${project.basedir}/modules/platforms/cpp/">521<include name="**/CMakeLists.txt" />522</fileset>523</replaceregexp>524
525<echo message="Update ignite.version in .NET" />526
527<replaceregexp byline="true" encoding="UTF-8">528<regexp pattern="(\[assembly:\s*Assembly\w*Version\w*\(")\d+\.\d+\.\d+(\.\d+)?("\)\])" />529<substitution expression="\1${ignite.platform.full.version}\3" />530<fileset dir="${project.basedir}/modules/platforms/dotnet/">531<include name="**/SharedAssemblyInfo.cs" />532</fileset>533</replaceregexp>534
535<replaceregexp byline="true" encoding="UTF-8">536<regexp pattern="(\[assembly:\s*AssemblyInformationalVersion\w*\(").*?("\)\])" />537<substitution538expression="\1${ignite.majorVersion}.${ignite.minorVersion}.${ignite.incrementalVersion}\2" />539<fileset dir="${project.basedir}/modules/platforms/dotnet/">540<include name="**/SharedAssemblyInfo.cs" />541</fileset>542</replaceregexp>543
544<echo message="Update ignite.version in resource files" />545
546<replaceregexp byline="true" encoding="UTF-8">547<regexp pattern="(ignite.version=).+$" />548<substitution expression="\1${project.version}" />549<fileset dir="${project.basedir}/modules/core/">550<include name="src/main/resources/ignite.properties" />551</fileset>552</replaceregexp>553
554<echo message="Update ignite.version in build.gradle" />555
556<replaceregexp byline="true" encoding="UTF-8">557<regexp pattern="(ignVer = ).*$"/>558<substitution expression="\1'${project.version}'" />559<fileset dir="${project.basedir}/modules/dev-utils/">560<include name="ignite-modules-test/build.gradle" />561</fileset>562</replaceregexp>563</target>564</configuration>565</execution>566</executions>567</plugin>568</plugins>569</build>570</profile>571<profile>572<!--573This profile is used to provide a check that all tests are defined in at least one suite.
574
575Some Ignite tests can be declared within one maven module but ran in a suite declared in a different module.
576Then it's impossible to create an isolated check for every module. We should aggregate info from all modules
577and make a final decision on the aggregation result.
578
579The maven project apache-ignite:pom is the last that is built for the maven reactor.
580We leverage on that and provide clean and assertion tasks here.
581-->
582<id>check-test-suites</id>583
584<build>585<plugins>586<plugin>587<!-- Clean up custom surefire test provider. -->588<groupId>org.apache.maven.plugins</groupId>589<artifactId>maven-antrun-plugin</artifactId>590<executions>591<execution>592<phase>test</phase>593<goals>594<goal>run</goal>595</goals>596<configuration>597<target>598<delete>599<fileset dir="${basedir}/modules/tools/target/classes/META-INF/services" />600</delete>601</target>602</configuration>603</execution>604</executions>605</plugin>606
607<plugin>608<!-- Check final list of orphaned tests. -->609<groupId>org.codehaus.mojo</groupId>610<artifactId>exec-maven-plugin</artifactId>611<executions>612<execution>613<phase>test</phase>614<goals>615<goal>java</goal>616</goals>617</execution>618</executions>619<configuration>620<includePluginDependencies>true</includePluginDependencies>621<mainClass>org.apache.ignite.tools.surefire.testsuites.AssertOnOrphanedTests</mainClass>622</configuration>623</plugin>624</plugins>625</build>626</profile>627</profiles>628
629<build>630<plugins>631<plugin>632<groupId>org.apache.maven.plugins</groupId>633<artifactId>maven-clean-plugin</artifactId>634<executions>635<execution>636<phase>clean</phase>637<goals>638<goal>clean</goal>639</goals>640<configuration>641<filesets>642<fileset>643<directory>libs</directory>644</fileset>645</filesets>646</configuration>647</execution>648</executions>649</plugin>650<plugin>651<groupId>org.apache.maven.plugins</groupId>652<artifactId>maven-deploy-plugin</artifactId>653<configuration>654<skip>true</skip>655</configuration>656</plugin>657</plugins>658</build>659</project>660