pom.xml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  1. <?xml version="1.0"?>
  2. <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">
  3. <!--
  4. Licensed to the Apache Software Foundation (ASF) under one or more
  5. contributor license agreements. See the NOTICE file distributed with
  6. this work for additional information regarding copyright ownership.
  7. The 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
  9. the License. You may obtain a copy of the License at
  10. http://www.apache.org/licenses/LICENSE-2.0
  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. <parent>
  18. <groupId>org.apache.ambari</groupId>
  19. <artifactId>ambari-project</artifactId>
  20. <version>1.3.0-SNAPSHOT</version>
  21. <relativePath>../ambari-project</relativePath>
  22. </parent>
  23. <modelVersion>4.0.0</modelVersion>
  24. <groupId>org.apache.ambari</groupId>
  25. <artifactId>ambari-agent</artifactId>
  26. <packaging>pom</packaging>
  27. <version>1.3.0-SNAPSHOT</version>
  28. <name>Ambari Agent</name>
  29. <description>Ambari Agent</description>
  30. <properties>
  31. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  32. <final.name>${project.artifactId}-${project.version}</final.name>
  33. <package.release>1</package.release>
  34. <package.prefix>/usr</package.prefix>
  35. <package.log.dir>/var/log/ambari-agent</package.log.dir>
  36. <package.pid.dir>/var/run/ambari-agent</package.pid.dir>
  37. <skipTests>false</skipTests>
  38. <agent.install.dir>/usr/lib/python2.6/site-packages/ambari_agent</agent.install.dir>
  39. <resmgmt.install.dir>/usr/lib/python2.6/site-packages/resource_management</resmgmt.install.dir>
  40. <common_functions.install.dir>/usr/lib/ambari-agent/lib/common_functions</common_functions.install.dir>
  41. <jinja.install.dir>/usr/lib/python2.6/site-packages/jinja2</jinja.install.dir>
  42. <lib.dir>/usr/lib/ambari-agent/lib</lib.dir>
  43. <python.ver>python &gt;= 2.6</python.ver>
  44. <deb.python.ver>python (&gt;= 2.6)</deb.python.ver>
  45. <deb.architecture>amd64</deb.architecture>
  46. <deb.dependency.list>openssl, zlibc, ${deb.python.ver}</deb.dependency.list>
  47. <ambari.server.module>../ambari-server</ambari.server.module>
  48. <target.cache.dir>${project.build.directory}/cache/</target.cache.dir>
  49. <resource.keeper.script>${ambari.server.module}/src/main/python/ambari_server/resourceFilesKeeper.py</resource.keeper.script>
  50. </properties>
  51. <build>
  52. <plugins>
  53. <plugin>
  54. <groupId>org.codehaus.mojo</groupId>
  55. <artifactId>build-helper-maven-plugin</artifactId>
  56. <version>1.8</version>
  57. <executions>
  58. <execution>
  59. <id>parse-version</id>
  60. <phase>validate</phase>
  61. <goals>
  62. <goal>parse-version</goal>
  63. </goals>
  64. </execution>
  65. <execution>
  66. <id>regex-property</id>
  67. <goals>
  68. <goal>regex-property</goal>
  69. </goals>
  70. <configuration>
  71. <name>ambariVersion</name>
  72. <value>${project.version}</value>
  73. <regex>^([0-9]+)\.([0-9]+)\.([0-9]+)(\.|-).*</regex>
  74. <replacement>$1.$2.$3</replacement>
  75. <failIfNoMatch>false</failIfNoMatch>
  76. </configuration>
  77. </execution>
  78. </executions>
  79. </plugin>
  80. <plugin>
  81. <artifactId>maven-compiler-plugin</artifactId>
  82. <version>3.0</version>
  83. </plugin>
  84. <plugin>
  85. <artifactId>maven-assembly-plugin</artifactId>
  86. <configuration>
  87. <tarLongFileMode>gnu</tarLongFileMode>
  88. <descriptors>
  89. <descriptor>src/packages/tarball/all.xml</descriptor>
  90. </descriptors>
  91. </configuration>
  92. <executions>
  93. <execution>
  94. <id>build-tarball</id>
  95. <phase>prepare-package</phase>
  96. <goals>
  97. <goal>single</goal>
  98. </goals>
  99. </execution>
  100. </executions>
  101. </plugin>
  102. <plugin>
  103. <groupId>org.codehaus.mojo</groupId>
  104. <artifactId>exec-maven-plugin</artifactId>
  105. <version>1.2</version>
  106. <executions>
  107. <execution>
  108. <configuration>
  109. <executable>${project.basedir}/../ambari-common/src/main/unix/ambari-python-wrap</executable>
  110. <workingDirectory>src/test/python</workingDirectory>
  111. <arguments>
  112. <argument>unitTests.py</argument>
  113. </arguments>
  114. <environmentVariables>
  115. <PYTHONPATH>${project.basedir}/../ambari-common/src/main/python/jinja2:${project.basedir}/../ambari-common/src/main/python/common_functions:${project.basedir}/../ambari-common/src/test/python:${project.basedir}/../ambari-common/src/main/python:${project.basedir}/src/main/python/ambari_agent:${project.basedir}/src/main/python/resource_management:${project.basedir}/src/test/python/ambari_agent:${project.basedir}/src/test/python/resource_management:${project.basedir}/src/main/python:${project.basedir}/../ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/package/files:${project.basedir}/../ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/package/files:$PYTHONPATH</PYTHONPATH>
  116. </environmentVariables>
  117. <skip>${skipTests}</skip>
  118. </configuration>
  119. <id>python-test</id>
  120. <phase>test</phase>
  121. <goals>
  122. <goal>exec</goal>
  123. </goals>
  124. </execution>
  125. <execution>
  126. <!-- TODO: Looks like section is unused, maybe remove? -->
  127. <configuration>
  128. <executable>${project.basedir}/../ambari-common/src/main/unix/ambari-python-wrap</executable>
  129. <workingDirectory>target/ambari-agent-${project.version}</workingDirectory>
  130. <arguments>
  131. <argument>${project.basedir}/src/main/python/setup.py</argument>
  132. <argument>clean</argument>
  133. <argument>bdist_dumb</argument>
  134. </arguments>
  135. <environmentVariables>
  136. <PYTHONPATH>target/ambari-agent-${project.version}:$PYTHONPATH</PYTHONPATH>
  137. </environmentVariables>
  138. </configuration>
  139. <id>python-package</id>
  140. <phase>package</phase>
  141. <goals>
  142. <goal>exec</goal>
  143. </goals>
  144. </execution>
  145. <execution>
  146. <configuration>
  147. <executable>${project.basedir}/../ambari-common/src/main/unix/ambari-python-wrap</executable>
  148. <workingDirectory>${basedir}</workingDirectory>
  149. <arguments>
  150. <argument>${resource.keeper.script}</argument>
  151. <argument>${target.cache.dir}</argument>
  152. </arguments>
  153. <environmentVariables>
  154. <PYTHONPATH>target/ambari-agent-${project.version}:$PYTHONPATH</PYTHONPATH>
  155. </environmentVariables>
  156. </configuration>
  157. <id>generate-hash-files</id>
  158. <phase>package</phase>
  159. <goals>
  160. <goal>exec</goal>
  161. </goals>
  162. </execution>
  163. </executions>
  164. </plugin>
  165. <plugin>
  166. <groupId>org.codehaus.mojo</groupId>
  167. <artifactId>rpm-maven-plugin</artifactId>
  168. <version>2.0.1</version>
  169. <executions>
  170. <execution>
  171. <!-- unbinds rpm creation from maven lifecycle -->
  172. <phase>none</phase>
  173. <goals>
  174. <goal>rpm</goal>
  175. </goals>
  176. </execution>
  177. </executions>
  178. <configuration>
  179. <copyright>2012, Apache Software Foundation</copyright>
  180. <group>Development</group>
  181. <description>Maven Recipe: RPM Package.</description>
  182. <requires>
  183. <require>openssl</require>
  184. <require>zlib</require>
  185. <require>${python.ver}</require>
  186. </requires>
  187. <postinstallScriptlet>
  188. <scriptFile>src/main/package/rpm/postinstall.sh</scriptFile>
  189. <fileEncoding>utf-8</fileEncoding>
  190. </postinstallScriptlet>
  191. <preinstallScriptlet>
  192. <scriptFile>src/main/package/rpm/preinstall.sh</scriptFile>
  193. <fileEncoding>utf-8</fileEncoding>
  194. </preinstallScriptlet>
  195. <preremoveScriptlet>
  196. <scriptFile>src/main/package/rpm/preremove.sh</scriptFile>
  197. <fileEncoding>utf-8</fileEncoding>
  198. </preremoveScriptlet>
  199. <needarch>x86_64</needarch>
  200. <autoRequires>false</autoRequires>
  201. <mappings>
  202. <mapping>
  203. <directory>${agent.install.dir}</directory>
  204. <sources>
  205. <source>
  206. <location>${project.build.directory}/${project.artifactId}-${project.version}/ambari_agent</location>
  207. </source>
  208. </sources>
  209. </mapping>
  210. <mapping>
  211. <directory>/var/lib/ambari-agent/</directory>
  212. <filemode>755</filemode>
  213. <username>root</username>
  214. <groupname>root</groupname>
  215. <directoryIncluded>false</directoryIncluded>
  216. <sources>
  217. <source>
  218. <location>../ambari-common/src/main/unix/ambari-python-wrap</location>
  219. </source>
  220. </sources>
  221. </mapping>
  222. <mapping>
  223. <directory>${resmgmt.install.dir}</directory>
  224. <sources>
  225. <source>
  226. <location>${project.build.directory}/${project.artifactId}-${project.version}/resource_management</location>
  227. </source>
  228. </sources>
  229. </mapping>
  230. <mapping>
  231. <directory>${common_functions.install.dir}</directory>
  232. <sources>
  233. <source>
  234. <location>${project.basedir}/../ambari-common/src/main/python/common_functions</location>
  235. </source>
  236. </sources>
  237. </mapping>
  238. <mapping>
  239. <directory>${jinja.install.dir}</directory>
  240. <sources>
  241. <source>
  242. <location>${project.basedir}/../ambari-common/src/main/python/jinja2/jinja2</location>
  243. <excludes>
  244. <exclude>${project.basedir}/../ambari-common/src/main/python/jinja2/jinja2/testsuite</exclude>
  245. </excludes>
  246. </source>
  247. </sources>
  248. </mapping>
  249. <mapping>
  250. <directory>${lib.dir}/examples</directory>
  251. <filemode>755</filemode>
  252. <username>root</username>
  253. <groupname>root</groupname>
  254. <sources>
  255. <source>
  256. <location>src/examples</location>
  257. </source>
  258. </sources>
  259. </mapping>
  260. <mapping>
  261. <directory>/etc/ambari-agent/conf</directory>
  262. <filemode>755</filemode>
  263. <username>root</username>
  264. <groupname>root</groupname>
  265. <sources>
  266. <source>
  267. <location>conf/unix/ambari-agent.ini</location>
  268. </source>
  269. </sources>
  270. </mapping>
  271. <mapping>
  272. <directory>/usr/sbin</directory>
  273. <filemode>755</filemode>
  274. <username>root</username>
  275. <groupname>root</groupname>
  276. <directoryIncluded>false</directoryIncluded>
  277. <sources>
  278. <source>
  279. <location>conf/unix/ambari-agent</location>
  280. <filter>true</filter>
  281. </source>
  282. </sources>
  283. </mapping>
  284. <mapping>
  285. <directory>/var/lib/ambari-agent</directory>
  286. <filemode>700</filemode>
  287. <username>root</username>
  288. <groupname>root</groupname>
  289. <sources>
  290. <source>
  291. <location>conf/unix/ambari-env.sh</location>
  292. </source>
  293. </sources>
  294. </mapping>
  295. <mapping>
  296. <directory>/var/lib/ambari-agent</directory>
  297. <filemode>700</filemode>
  298. <username>root</username>
  299. <groupname>root</groupname>
  300. <sources>
  301. <source>
  302. <location>conf/unix/install-helper.sh</location>
  303. </source>
  304. </sources>
  305. </mapping>
  306. <mapping>
  307. <directory>${package.pid.dir}</directory>
  308. <filemode>755</filemode>
  309. <username>root</username>
  310. <groupname>root</groupname>
  311. </mapping>
  312. <mapping>
  313. <directory>/var/lib/${project.artifactId}/data</directory>
  314. <filemode>755</filemode>
  315. <username>root</username>
  316. <groupname>root</groupname>
  317. </mapping>
  318. <mapping>
  319. <directory>/var/lib/${project.artifactId}/keys</directory>
  320. <filemode>755</filemode>
  321. <username>root</username>
  322. <groupname>root</groupname>
  323. </mapping>
  324. <mapping>
  325. <directory>${package.log.dir}</directory>
  326. <filemode>755</filemode>
  327. <username>root</username>
  328. <groupname>root</groupname>
  329. </mapping>
  330. <mapping>
  331. <directory>/etc/rc.d/init.d</directory>
  332. <filemode>755</filemode>
  333. <username>root</username>
  334. <groupname>root</groupname>
  335. <sources>
  336. <source>
  337. <location>etc/init.d/ambari-agent</location>
  338. </source>
  339. </sources>
  340. </mapping>
  341. <mapping>
  342. <directory>/var/lib/${project.artifactId}/data</directory>
  343. <filemode>755</filemode>
  344. <username>root</username>
  345. <groupname>root</groupname>
  346. <sources>
  347. <source>
  348. <location>../version</location>
  349. <filter>true</filter>
  350. </source>
  351. </sources>
  352. </mapping>
  353. <mapping>
  354. <directory>/var/lib/ambari-agent/cache</directory>
  355. <filemode>755</filemode>
  356. <username>root</username>
  357. <groupname>root</groupname>
  358. <sources>
  359. <source>
  360. <location>${target.cache.dir}</location>
  361. </source>
  362. </sources>
  363. </mapping>
  364. </mappings>
  365. </configuration>
  366. </plugin>
  367. <plugin>
  368. <groupId>org.vafer</groupId>
  369. <artifactId>jdeb</artifactId>
  370. <version>1.0.1</version>
  371. <executions>
  372. <execution>
  373. <phase>none</phase>
  374. <goals>
  375. <goal>jdeb</goal>
  376. </goals>
  377. </execution>
  378. </executions>
  379. <configuration>
  380. <controlDir>${basedir}/src/main/package/deb/control</controlDir>
  381. <deb>${basedir}/target/${artifactId}_${package-version}-${package-release}.deb</deb>
  382. <dataSet>
  383. <data>
  384. <src>${project.build.directory}/${project.artifactId}-${project.version}/ambari_agent</src>
  385. <type>directory</type>
  386. <mapper>
  387. <type>perm</type>
  388. <prefix>${agent.install.dir}</prefix>
  389. </mapper>
  390. </data>
  391. <data>
  392. <src>${project.build.directory}/${project.artifactId}-${project.version}/resource_management</src>
  393. <type>directory</type>
  394. <mapper>
  395. <type>perm</type>
  396. <prefix>${resmgmt.install.dir}</prefix>
  397. </mapper>
  398. </data>
  399. <data>
  400. <src>${project.basedir}/../ambari-common/src/main/python/jinja2/jinja2</src>
  401. <excludes>${project.basedir}/../ambari-common/src/main/python/jinja2/jinja2/testsuite</excludes>
  402. <type>directory</type>
  403. <mapper>
  404. <type>perm</type>
  405. <prefix>${jinja.install.dir}</prefix>
  406. </mapper>
  407. </data>
  408. <data>
  409. <src>src/examples</src>
  410. <type>directory</type>
  411. <mapper>
  412. <type>perm</type>
  413. <prefix>${lib.dir}/examples</prefix>
  414. <user>root</user>
  415. <group>root</group>
  416. <filemode>755</filemode>
  417. </mapper>
  418. </data>
  419. <data>
  420. <src>conf/unix/ambari-agent.ini</src>
  421. <type>file</type>
  422. <mapper>
  423. <type>perm</type>
  424. <prefix>/etc/ambari-agent/conf</prefix>
  425. <user>root</user>
  426. <group>root</group>
  427. <filemode>755</filemode>
  428. </mapper>
  429. </data>
  430. <data>
  431. <src>${basedir}/target/src/ambari-agent</src>
  432. <type>file</type>
  433. <mapper>
  434. <type>perm</type>
  435. <prefix>/usr/sbin</prefix>
  436. <user>root</user>
  437. <group>root</group>
  438. <filemode>755</filemode>
  439. </mapper>
  440. </data>
  441. <data>
  442. <src>conf/unix/ambari-env.sh</src>
  443. <type>file</type>
  444. <mapper>
  445. <type>perm</type>
  446. <prefix>/var/lib/ambari-agent</prefix>
  447. <user>root</user>
  448. <group>root</group>
  449. <filemode>700</filemode>
  450. </mapper>
  451. </data>
  452. <data>
  453. <src>conf/unix/install-helper.sh</src>
  454. <type>file</type>
  455. <mapper>
  456. <type>perm</type>
  457. <prefix>/var/lib/ambari-agent</prefix>
  458. <user>root</user>
  459. <group>root</group>
  460. <filemode>700</filemode>
  461. </mapper>
  462. </data>
  463. <data>
  464. <type>template</type>
  465. <paths>
  466. <path>${package.pid.dir}</path>
  467. <path>/var/lib/${project.artifactId}/data</path>
  468. <path>/var/lib/${project.artifactId}/keys</path>
  469. <path>${package.log.dir}</path>
  470. </paths>
  471. <mapper>
  472. <type>perm</type>
  473. <user>root</user>
  474. <group>root</group>
  475. <filemode>755</filemode>
  476. </mapper>
  477. </data>
  478. <data>
  479. <src>etc/init.d/ambari-agent</src>
  480. <type>file</type>
  481. <mapper>
  482. <type>perm</type>
  483. <prefix>/etc/init.d</prefix>
  484. <user>root</user>
  485. <group>root</group>
  486. <filemode>755</filemode>
  487. </mapper>
  488. </data>
  489. <data>
  490. <src>${basedir}/target/src/version</src>
  491. <type>file</type>
  492. <mapper>
  493. <type>perm</type>
  494. <prefix>/var/lib/${project.artifactId}/data</prefix>
  495. <user>root</user>
  496. <group>root</group>
  497. <filemode>755</filemode>
  498. </mapper>
  499. </data>
  500. <data>
  501. <src>../ambari-common/src/main/unix/ambari-python-wrap</src>
  502. <type>file</type>
  503. <mapper>
  504. <type>perm</type>
  505. <prefix>/var/lib/ambari-agent</prefix>
  506. <user>root</user>
  507. <group>root</group>
  508. <filemode>755</filemode>
  509. </mapper>
  510. </data>
  511. <data>
  512. <src>${target.cache.dir}</src>
  513. <type>directory</type>
  514. <mapper>
  515. <type>perm</type>
  516. <prefix>/var/lib/ambari-agent/cache</prefix>
  517. <user>root</user>
  518. <group>root</group>
  519. <filemode>755</filemode>
  520. </mapper>
  521. </data>
  522. <data>
  523. <src>
  524. ${project.basedir}/../ambari-common/src/main/python/common_functions
  525. </src>
  526. <type>directory</type>
  527. <mapper>
  528. <type>perm</type>
  529. <prefix>${common_functions.install.dir}</prefix>
  530. <filemode>755</filemode>
  531. <user>root</user>
  532. <group>root</group>
  533. </mapper>
  534. </data>
  535. </dataSet>
  536. </configuration>
  537. </plugin>
  538. <plugin>
  539. <artifactId>maven-resources-plugin</artifactId>
  540. <version>2.6</version>
  541. <executions>
  542. <execution>
  543. <id>copy-resources</id>
  544. <phase>prepare-package</phase>
  545. <goals>
  546. <goal>copy-resources</goal>
  547. </goals>
  548. <configuration>
  549. <outputDirectory>${target.cache.dir}</outputDirectory>
  550. <resources>
  551. <resource>
  552. <directory>${ambari.server.module}/src/main/resources</directory>
  553. <includes>
  554. <include>stacks/**/*</include>
  555. <include>custom_actions/**/*</include>
  556. </includes>
  557. <filtering>false</filtering>
  558. </resource>
  559. </resources>
  560. </configuration>
  561. </execution>
  562. <execution>
  563. <id>copy-resources-filter</id>
  564. <phase>prepare-package</phase>
  565. <goals>
  566. <goal>copy-resources</goal>
  567. </goals>
  568. <configuration>
  569. <outputDirectory>${basedir}/target/src</outputDirectory>
  570. <resources>
  571. <resource>
  572. <directory>conf/unix</directory>
  573. <includes>
  574. <include>ambari-agent</include>
  575. </includes>
  576. <filtering>true</filtering>
  577. </resource>
  578. <resource>
  579. <directory>${basedir}/../</directory>
  580. <includes>
  581. <include>version</include>
  582. </includes>
  583. <filtering>true</filtering>
  584. </resource>
  585. </resources>
  586. </configuration>
  587. </execution>
  588. </executions>
  589. </plugin>
  590. <plugin>
  591. <groupId>org.apache.rat</groupId>
  592. <artifactId>apache-rat-plugin</artifactId>
  593. <configuration>
  594. <excludes>
  595. <exclude>src/examples/*</exclude>
  596. <exclude>src/test/python/dummy*.txt</exclude>
  597. <exclude>src/test/python/ambari_agent/dummy_files/*</exclude>
  598. <exclude>src/test/python/ambari_agent/dummy*.txt</exclude>
  599. <exclude>src/main/python/ambari_agent/imports.txt</exclude>
  600. <exclude>**/*.erb</exclude>
  601. <exclude>**/*.json</exclude>
  602. <exclude>**/*.pydevproject</exclude>
  603. </excludes>
  604. </configuration>
  605. <executions>
  606. <execution>
  607. <phase>test</phase>
  608. <goals>
  609. <goal>check</goal>
  610. </goals>
  611. </execution>
  612. </executions>
  613. </plugin>
  614. <plugin>
  615. <groupId>org.codehaus.mojo</groupId>
  616. <artifactId>buildnumber-maven-plugin</artifactId>
  617. <version>${buildnumber-maven-plugin-version}</version>
  618. <configuration>
  619. <urlScm>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-ambari.git</urlScm>
  620. </configuration>
  621. <executions>
  622. <execution>
  623. <phase>validate</phase>
  624. <goals>
  625. <goal>create</goal>
  626. </goals>
  627. </execution>
  628. </executions>
  629. </plugin>
  630. </plugins>
  631. <extensions>
  632. <extension>
  633. <groupId>org.apache.maven.wagon</groupId>
  634. <artifactId>wagon-ssh-external</artifactId>
  635. </extension>
  636. </extensions>
  637. </build>
  638. </project>