pom.xml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. ~ Copyright 1999-2019 Seata.io Group.
  4. ~
  5. ~ Licensed under the Apache License, Version 2.0 (the "License");
  6. ~ you may not use this file except in compliance with the License.
  7. ~ You may obtain a copy of the License at
  8. ~
  9. ~ https://www.apache.org/licenses/LICENSE-2.0
  10. ~
  11. ~ Unless required by applicable law or agreed to in writing, software
  12. ~ distributed under the License is distributed on an "AS IS" BASIS,
  13. ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. ~ See the License for the specific language governing permissions and
  15. ~ limitations under the License.
  16. -->
  17. <project xmlns="http://maven.apache.org/POM/4.0.0"
  18. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  19. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  20. <modelVersion>4.0.0</modelVersion>
  21. <groupId>io.seata</groupId>
  22. <artifactId>seata-build</artifactId>
  23. <packaging>pom</packaging>
  24. <version>${revision}</version>
  25. <name>Seata Build ${project.version}</name>
  26. <description>plugin management for Seata built with Maven</description>
  27. <licenses>
  28. <license>
  29. <name>Apache License, Version 2.0</name>
  30. <url>https://www.apache.org/licenses/LICENSE-2.0</url>
  31. <distribution>repo</distribution>
  32. </license>
  33. </licenses>
  34. <organization>
  35. <name>Seata</name>
  36. <url>https://github.com/seata</url>
  37. </organization>
  38. <url>https://seata.io</url>
  39. <developers>
  40. <developer>
  41. <id>Seata</id>
  42. <name>Seata</name>
  43. <url>https://seata.io</url>
  44. <email>dev-seata@googlegroups.com</email>
  45. </developer>
  46. </developers>
  47. <issueManagement>
  48. <system>github</system>
  49. <url>https://github.com/seata/seata/issues</url>
  50. </issueManagement>
  51. <scm>
  52. <url>git@github.com:seata/seata.git</url>
  53. <connection>scm:git@github.com:seata/seata.git</connection>
  54. <developerConnection>scm:git@github.com:seata/seata.git</developerConnection>
  55. </scm>
  56. <properties>
  57. <!-- seata version -->
  58. <revision>1.6.1</revision>
  59. <!-- Compiler settings properties -->
  60. <java.version>1.8</java.version>
  61. <maven.compiler.source>${java.version}</maven.compiler.source>
  62. <maven.compiler.target>${java.version}</maven.compiler.target>
  63. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  64. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  65. <!-- The version of spring-boot for 'spring-boot-dependencies' and 'spring-boot-maven-plugin' -->
  66. <spring-boot.version>2.5.13</spring-boot.version>
  67. <spring-framework.version>5.3.19</spring-framework.version>
  68. <!-- For test -->
  69. <junit-jupiter.version>5.8.2</junit-jupiter.version>
  70. <junit-platform.version>1.8.2</junit-platform.version>
  71. <!-- Maven plugin versions -->
  72. <!-- Build -->
  73. <easyj-maven-plugin.version>1.0.5</easyj-maven-plugin.version>
  74. <maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
  75. <!-- Compiler -->
  76. <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
  77. <protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
  78. <kotlin-maven-plugin.version>1.3.72</kotlin-maven-plugin.version>
  79. <!-- Check -->
  80. <maven-pmd-plugin.version>3.8</maven-pmd-plugin.version>
  81. <p3c-pmd.version>1.3.6</p3c-pmd.version>
  82. <maven-javadoc-plugin.version>3.0.0</maven-javadoc-plugin.version>
  83. <license-maven-plugin.version>3.0</license-maven-plugin.version>
  84. <mojo-license-maven-plugin.version>1.20</mojo-license-maven-plugin.version>
  85. <maven-checkstyle-plugin.version>3.1.1</maven-checkstyle-plugin.version>
  86. <maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
  87. <!-- Test -->
  88. <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
  89. <jacoco-maven-plugin.version>0.8.7</jacoco-maven-plugin.version>
  90. <!-- Packaging -->
  91. <maven-source-plugin.version>2.2.1</maven-source-plugin.version>
  92. <maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
  93. <maven-jar-plugin.version>3.2.2</maven-jar-plugin.version>
  94. <maven-shade-plugin.version>2.4.3</maven-shade-plugin.version>
  95. <maven-dependency-plugin.version>3.0.2</maven-dependency-plugin.version>
  96. <maven-assembly-plugin.version>3.0.0</maven-assembly-plugin.version>
  97. <jib-maven-plugin.version>3.2.0</jib-maven-plugin.version>
  98. <!-- Deploy && GPG -->
  99. <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
  100. <nexus-staging-maven-plugin.version>1.6.7</nexus-staging-maven-plugin.version>
  101. <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
  102. <!-- Other -->
  103. <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
  104. <os-maven-plugin.version>1.5.0.Final</os-maven-plugin.version>
  105. <!-- Default values of the Maven plugins -->
  106. <checkstyle.skip>true</checkstyle.skip>
  107. <license.skip>true</license.skip>
  108. <maven.test.skip>false</maven.test.skip>
  109. <maven.surefire.argLine></maven.surefire.argLine>
  110. <gpg.keyname>A1C4DAB9B220DBA0C277E945D6A1420D747D1EE0</gpg.keyname>
  111. <gpg.arg1/>
  112. <gpg.arg2/>
  113. <!-- For docker image-->
  114. <image.publish.skip>true</image.publish.skip>
  115. <image.tags>latest</image.tags>
  116. <dependencies.copy.skip>true</dependencies.copy.skip>
  117. </properties>
  118. <build>
  119. <pluginManagement>
  120. <plugins>
  121. <plugin>
  122. <groupId>org.apache.maven.plugins</groupId>
  123. <artifactId>maven-deploy-plugin</artifactId>
  124. <version>${maven-deploy-plugin.version}</version>
  125. </plugin>
  126. <plugin>
  127. <groupId>org.apache.maven.plugins</groupId>
  128. <artifactId>maven-shade-plugin</artifactId>
  129. <version>${maven-shade-plugin.version}</version>
  130. </plugin>
  131. <plugin>
  132. <groupId>org.apache.maven.plugins</groupId>
  133. <artifactId>maven-dependency-plugin</artifactId>
  134. <version>${maven-dependency-plugin.version}</version>
  135. </plugin>
  136. <plugin>
  137. <groupId>org.apache.maven.plugins</groupId>
  138. <artifactId>maven-checkstyle-plugin</artifactId>
  139. <version>${maven-checkstyle-plugin.version}</version>
  140. </plugin>
  141. <plugin>
  142. <groupId>org.apache.maven.plugins</groupId>
  143. <artifactId>maven-javadoc-plugin</artifactId>
  144. <version>${maven-javadoc-plugin.version}</version>
  145. </plugin>
  146. <plugin>
  147. <groupId>org.xolstice.maven.plugins</groupId>
  148. <artifactId>protobuf-maven-plugin</artifactId>
  149. <version>${protobuf-maven-plugin.version}</version>
  150. </plugin>
  151. <plugin>
  152. <groupId>com.mycila</groupId>
  153. <artifactId>license-maven-plugin</artifactId>
  154. <version>${license-maven-plugin.version}</version>
  155. </plugin>
  156. <plugin>
  157. <groupId>org.codehaus.mojo</groupId>
  158. <artifactId>license-maven-plugin</artifactId>
  159. <version>${mojo-license-maven-plugin.version}</version>
  160. </plugin>
  161. <plugin>
  162. <groupId>icu.easyj.maven.plugins</groupId>
  163. <artifactId>easyj-maven-plugin</artifactId>
  164. <version>${easyj-maven-plugin.version}</version>
  165. <!-- This goal can replace flatten-maven-plugin to flatten the pom, and replace '${revision}' to the actual version. -->
  166. <executions>
  167. <execution>
  168. <id>simplify-pom</id>
  169. <goals>
  170. <goal>simplify-pom</goal>
  171. </goals>
  172. </execution>
  173. </executions>
  174. <configuration>
  175. <simplifiedPomFileName>.flattened-pom.xml</simplifiedPomFileName>
  176. <useTabIndent>true</useTabIndent>
  177. </configuration>
  178. </plugin>
  179. </plugins>
  180. </pluginManagement>
  181. <plugins>
  182. <!-- Compiler -->
  183. <plugin>
  184. <groupId>org.apache.maven.plugins</groupId>
  185. <artifactId>maven-compiler-plugin</artifactId>
  186. <version>${maven-compiler-plugin.version}</version>
  187. <configuration>
  188. <source>${maven.compiler.source}</source>
  189. <target>${maven.compiler.target}</target>
  190. <encoding>${project.build.sourceEncoding}</encoding>
  191. <parameters>true</parameters>
  192. </configuration>
  193. </plugin>
  194. <!-- Resources -->
  195. <plugin>
  196. <groupId>org.apache.maven.plugins</groupId>
  197. <artifactId>maven-resources-plugin</artifactId>
  198. <version>${maven-resources-plugin.version}</version>
  199. <configuration>
  200. <encoding>${project.build.sourceEncoding}</encoding>
  201. </configuration>
  202. </plugin>
  203. <!-- Jar -->
  204. <plugin>
  205. <groupId>org.apache.maven.plugins</groupId>
  206. <artifactId>maven-jar-plugin</artifactId>
  207. <version>${maven-jar-plugin.version}</version>
  208. <configuration>
  209. <archive>
  210. <addMavenDescriptor>true</addMavenDescriptor>
  211. <index>true</index>
  212. <manifest>
  213. <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
  214. <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
  215. </manifest>
  216. <manifestEntries>
  217. <Implementation-Build>${maven.build.timestamp}</Implementation-Build>
  218. </manifestEntries>
  219. </archive>
  220. <excludes>
  221. <exclude>**/META-INF/additional-spring-configuration-metadata.json</exclude>
  222. <exclude>protobuf/**</exclude>
  223. <exclude>**/*.proto</exclude>
  224. <exclude>static/console-fe/**</exclude>
  225. </excludes>
  226. </configuration>
  227. </plugin>
  228. <!-- Clean -->
  229. <plugin>
  230. <groupId>org.apache.maven.plugins</groupId>
  231. <artifactId>maven-clean-plugin</artifactId>
  232. <version>${maven-clean-plugin.version}</version>
  233. <configuration>
  234. <filesets>
  235. <fileset>
  236. <directory>./</directory>
  237. <includes>
  238. <include>*-pom.xml</include>
  239. <include>**/db_store/**</include>
  240. <include>**/sessionStore/**</include>
  241. <include>**/root.data</include>
  242. </includes>
  243. <followSymlinks>false</followSymlinks>
  244. </fileset>
  245. </filesets>
  246. </configuration>
  247. </plugin>
  248. <!-- EasyJ -->
  249. <plugin>
  250. <groupId>icu.easyj.maven.plugins</groupId>
  251. <artifactId>easyj-maven-plugin</artifactId>
  252. </plugin>
  253. <!-- Enforcer -->
  254. <plugin>
  255. <groupId>org.apache.maven.plugins</groupId>
  256. <artifactId>maven-enforcer-plugin</artifactId>
  257. <version>${maven-enforcer-plugin.version}</version>
  258. <executions>
  259. <execution>
  260. <id>enforce-maven</id>
  261. <goals>
  262. <goal>enforce</goal>
  263. </goals>
  264. <configuration>
  265. <rules>
  266. <requireMavenVersion>
  267. <version>[3.6.0,)</version>
  268. </requireMavenVersion>
  269. </rules>
  270. </configuration>
  271. </execution>
  272. </executions>
  273. </plugin>
  274. </plugins>
  275. </build>
  276. <profiles>
  277. <!-- profile: release -->
  278. <profile>
  279. <id>release</id>
  280. <properties>
  281. <image.tags>${project.version},latest</image.tags>
  282. </properties>
  283. <build>
  284. <plugins>
  285. <!-- Javadoc -->
  286. <plugin>
  287. <groupId>org.apache.maven.plugins</groupId>
  288. <artifactId>maven-javadoc-plugin</artifactId>
  289. <configuration>
  290. <charset>${project.build.sourceEncoding}</charset>
  291. <encoding>${project.build.sourceEncoding}</encoding>
  292. <failOnError>false</failOnError>
  293. </configuration>
  294. <executions>
  295. <execution>
  296. <phase>package</phase>
  297. <goals>
  298. <goal>jar</goal>
  299. </goals>
  300. </execution>
  301. </executions>
  302. </plugin>
  303. <!-- Staging -->
  304. <plugin>
  305. <groupId>org.sonatype.plugins</groupId>
  306. <artifactId>nexus-staging-maven-plugin</artifactId>
  307. <version>${nexus-staging-maven-plugin.version}</version>
  308. <extensions>true</extensions>
  309. <configuration>
  310. <serverId>oss_seata</serverId>
  311. <nexusUrl>https://oss.sonatype.org/</nexusUrl>
  312. <autoReleaseAfterClose>false</autoReleaseAfterClose>
  313. </configuration>
  314. </plugin>
  315. <!-- GPG -->
  316. <plugin>
  317. <groupId>org.apache.maven.plugins</groupId>
  318. <artifactId>maven-gpg-plugin</artifactId>
  319. <version>${maven-gpg-plugin.version}</version>
  320. <executions>
  321. <execution>
  322. <id>sign-artifacts</id>
  323. <phase>verify</phase>
  324. <goals>
  325. <goal>sign</goal>
  326. </goals>
  327. <configuration>
  328. <keyname>${gpg.keyname}</keyname>
  329. <gpgArguments>
  330. <arg>${gpg.arg1}</arg>
  331. <arg>${gpg.arg2}</arg>
  332. </gpgArguments>
  333. </configuration>
  334. </execution>
  335. </executions>
  336. </plugin>
  337. </plugins>
  338. </build>
  339. <!-- distribution management -->
  340. <distributionManagement>
  341. <repository>
  342. <id>oss_seata</id>
  343. <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
  344. </repository>
  345. <snapshotRepository>
  346. <id>oss_seata</id>
  347. <url>https://oss.sonatype.org/content/repositories/snapshots</url>
  348. </snapshotRepository>
  349. </distributionManagement>
  350. </profile>
  351. <!-- profile: release-by-github-actions -->
  352. <profile>
  353. <id>release-by-github-actions</id>
  354. <properties>
  355. <gpg.arg1>--pinentry-mode</gpg.arg1>
  356. <gpg.arg2>loopback</gpg.arg2>
  357. </properties>
  358. </profile>
  359. <!-- profile: args-for-test-by-jdk17 -->
  360. <profile>
  361. <id>args-for-test-by-jdk17</id>
  362. <activation>
  363. <jdk>17</jdk>
  364. </activation>
  365. <properties>
  366. <maven.surefire.argLine>
  367. --add-opens java.base/java.lang=ALL-UNNAMED
  368. --add-opens java.base/java.net=ALL-UNNAMED
  369. --add-opens java.base/java.math=ALL-UNNAMED
  370. --add-opens java.base/java.text=ALL-UNNAMED
  371. --add-opens java.base/java.util=ALL-UNNAMED
  372. --add-opens java.base/java.util.regex=ALL-UNNAMED
  373. --add-opens java.base/java.util.concurrent=ALL-UNNAMED
  374. --add-opens java.sql/java.sql=ALL-UNNAMED
  375. --add-opens java.sql.rowset/javax.sql.rowset.serial=ALL-UNNAMED
  376. --illegal-access=permit
  377. -Dillegal-access=permit
  378. </maven.surefire.argLine>
  379. </properties>
  380. </profile>
  381. </profiles>
  382. </project>