deaffc4b2069dc583310996635516a01b9c31c43
[msb/apigateway.git] / distributions / msb-apigateway / pom.xml
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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3   <parent>
4     <groupId>org.onap.msb.apigateway.distributions</groupId>
5     <artifactId>distributions-parent</artifactId>
6     <version>1.3.0-SNAPSHOT</version>
7   </parent>
8   <modelVersion>4.0.0</modelVersion>
9   <groupId>org.onap.msb.apigateway.distributions</groupId>
10   <artifactId>msb-apigateway</artifactId>
11   <version>1.3.0-SNAPSHOT</version>
12   <name>onap/msb/apigateway/distributions/msb-apigateway</name>
13   <packaging>pom</packaging>
14
15   <properties>
16     <packageid>msb-apigateway</packageid>
17     <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
18     <version.output>${project.basedir}/target/version</version.output>
19     <docker.image.name>onap/msb/msb_apigateway</docker.image.name>
20     <docker.tag>${project.version}-${maven.build.timestamp}</docker.tag>
21     <docker.latest.tag>${project.version}-latest</docker.latest.tag>
22   </properties>
23
24   <profiles>
25     <profile>
26       <id>linux</id>
27       <activation>
28           <activeByDefault>true</activeByDefault>
29       </activation>
30       <dependencies>
31         <dependency>
32             <groupId>org.onap.msb.apigateway.apiroute</groupId>
33             <artifactId>apiroute-standalone</artifactId>
34             <type>zip</type>
35             <version>${project.version}</version>
36             <optional>true</optional>
37         </dependency>
38
39
40         <dependency>
41             <groupId>org.onap.msb.apigateway</groupId>
42             <artifactId>redis-ext</artifactId>
43             <type>tar.gz</type>
44             <classifier>${classifier.linux64}</classifier>
45             <version>${project.version}</version>
46             <optional>true</optional>
47         </dependency>
48
49         <dependency>
50           <groupId>org.onap.msb.apigateway</groupId>
51           <artifactId>openresty-ext</artifactId>
52           <type>tar.gz</type>
53           <classifier>${classifier.linux64}</classifier>
54           <version>${project.version}</version>
55           <optional>true</optional>
56         </dependency>
57       </dependencies>
58
59       <build>
60       <plugins>
61         <plugin>
62           <groupId>org.apache.maven.plugins</groupId>
63           <artifactId>maven-dependency-plugin</artifactId>
64           <executions>
65             <execution>
66                 <id>unpacktolinux64</id>
67                 <goals>
68                     <goal>unpack</goal>
69                 </goals>
70                 <phase>prepare-package</phase>
71                 <configuration>
72                   <artifactItems>
73                       <artifactItem>
74                         <groupId>org.onap.msb.apigateway.apiroute</groupId>
75                         <artifactId>apiroute-standalone</artifactId>
76                         <type>zip</type>
77                       </artifactItem>
78                       <artifactItem>
79                         <groupId>org.onap.msb.apigateway</groupId>
80                         <artifactId>redis-ext</artifactId>
81                         <type>tar.gz</type>
82                         <classifier>${classifier.linux64}</classifier>
83                       </artifactItem>
84                       <artifactItem>
85                         <groupId>org.onap.msb.apigateway</groupId>
86                         <artifactId>openresty-ext</artifactId>
87                         <type>tar.gz</type>
88                         <classifier>${classifier.linux64}</classifier>
89                       </artifactItem>
90                   </artifactItems>
91                   <excludes>**/*.bat,**/*.cmd,**/*.exe</excludes>
92                   <outputDirectory>${linux64outputdir}</outputDirectory>
93                   <overWriteReleases>false</overWriteReleases>
94                   <overWriteSnapshots>true</overWriteSnapshots>
95                   <outputAbsoluteArtifactFilename>true</outputAbsoluteArtifactFilename>
96                 </configuration>
97             </execution>
98           </executions>
99         </plugin>
100
101         <plugin>
102           <artifactId>maven-resources-plugin</artifactId>
103           <executions>
104             <execution>
105               <id>copy-msb-resources-linux</id>
106               <phase>prepare-package</phase>
107               <goals>
108                 <goal>copy-resources</goal>
109               </goals>
110               <configuration>
111                 <outputDirectory>${linux64outputdir}</outputDirectory>
112                 <includeEmptyDirs>true</includeEmptyDirs>
113                 <resources>
114                   <resource>
115                     <directory>src/assembly/resources/</directory>
116                     <filtering>false</filtering>
117                     <includes>
118                       <include>**/*</include>
119                     </includes>
120                     <excludes>
121                       <exclude>**/*.bat</exclude>
122                     </excludes>
123                   </resource>
124                 </resources>
125                 <overwrite>true</overwrite>
126               </configuration>
127             </execution>
128             <execution>
129               <id>copy-resources-dockerfile</id>
130               <phase>process-resources</phase>
131               <goals>
132                 <goal>copy-resources</goal>
133               </goals>
134               <configuration>
135                 <outputDirectory>${version.output}</outputDirectory>
136                 <includeEmptyDirs>true</includeEmptyDirs>
137                 <resources>
138                   <resource>
139                     <directory>${dockerFileDir}</directory>
140                     <filtering>false</filtering>
141                     <includes>
142                       <include>**/*</include>
143                     </includes>
144                   </resource>
145                 </resources>
146                 <overwrite>true</overwrite>
147               </configuration>
148             </execution>
149           </executions>
150         </plugin>
151
152         <plugin>
153           <groupId>org.apache.maven.plugins</groupId>
154           <artifactId>maven-antrun-plugin</artifactId>
155           <executions>
156             <execution>
157               <id>distribution</id>
158               <phase>package</phase>
159               <goals>
160                 <goal>run</goal>
161               </goals>
162               <configuration>
163                 <target name="distribution">
164
165                   <tstamp>
166                     <format property="last.updated" pattern="yyyy-MM-dd HH:mm:ss"/>
167                   </tstamp>
168                   <echo file="${linux64outputdir}/msb.version.properties" message="build.time=${last.updated}${line.separator}build.version=${project.version}"/>
169                   <tar destfile="${version.output}/${packageid}-${project.version}-${classifier.linux64}.tar.gz" longfile="posix" compression="gzip">
170                     <tarfileset dir="${linux64outputdir}" prefix="${packageid}" filemode="0644" dirmode="0755">
171                       <exclude name="**/*.sh"/>
172                       <exclude name="openresty/nginx/sbin/nginx"/>
173                       <exclude name="redis/redis-*"/>
174                     </tarfileset>
175                     <tarfileset dir="${linux64outputdir}" prefix="${packageid}" filemode="0755" dirmode="0755">
176                       <include name="**/*.sh"/>
177                       <include name="openresty/nginx/sbin/nginx"/>
178                       <include name="redis/redis-*"/>
179                     </tarfileset>
180                   </tar>
181                 </target>
182               </configuration>
183             </execution>
184           </executions>
185         </plugin>
186         </plugins>
187       </build>
188     </profile>
189     <profile>
190       <id>docker</id>
191       <build>
192           <plugins>
193                <plugin>
194                         <groupId>io.fabric8</groupId>
195                         <artifactId>docker-maven-plugin</artifactId>
196                         <version>0.19.1</version>
197                         <dependencies>
198                             <dependency>
199                                 <groupId>com.github.jnr</groupId>
200                                 <artifactId>jnr-unixsocket</artifactId>
201                                 <version>0.13</version>
202                             </dependency>
203                         </dependencies>
204                         <configuration>
205                             <verbose>true</verbose>
206                             <apiVersion>1.23</apiVersion>
207                             <registry>nexus3.onap.org:10003</registry>
208                             <images>
209                                 <image>
210                                     <name>${docker.image.name}</name>
211                                     <alias>docker_msb_apigateway</alias>
212                                     <build>
213                                         <cleanup>true</cleanup>
214                                         <tags>
215                                             <tag>${docker.tag}</tag>
216                                             <tag>${docker.latest.tag}</tag>
217                                         </tags>
218                                         <dockerFileDir>${version.output}</dockerFileDir>
219                                         <!--assembly>
220                                             <descriptorRef>artifact</descriptorRef>
221                                         </assembly-->
222                                     </build>
223                                 </image>
224                             </images>
225                         </configuration>
226                         <executions>
227                             <execution>
228                                 <id>clean-images</id>
229                                 <phase>pre-clean</phase>
230                                 <goals>
231                                     <goal>remove</goal>
232                                 </goals>
233                                 <configuration>
234                                     <removeAll>true</removeAll>
235                                     <image>docker_msb_apigateway</image>
236                                 </configuration>
237                             </execution>
238                             <execution>
239                                 <id>generate-images</id>
240                                 <phase>package</phase>
241                                 <goals>
242                                     <goal>build</goal>
243                                 </goals>
244                             </execution>
245                             <execution>
246                                 <id>push-images</id>
247                                 <phase>deploy</phase>
248                                 <goals>
249                                     <goal>push</goal>
250                                 </goals>
251                                 <configuration>
252                                     <image>${docker.image.name}</image>
253                                 </configuration>
254                             </execution>
255                         </executions>
256                     </plugin>  
257           </plugins>
258       </build>
259     </profile>
260   </profiles>
261
262 </project>