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    <modelVersion>4.0.0</modelVersion>
4
5    <groupId>vw</groupId>
6    <artifactId>vw-jni-${os.version}-${os.arch}</artifactId>
7    <version>1.0.0-SNAPSHOT</version>
8    <name>Vowpal Wabbit JNI Layer</name>
9
10    <properties>
11        <slf4j.version>1.7.6</slf4j.version>
12        <junit.version>4.11</junit.version>
13    </properties>
14
15    <dependencies>
16        <dependency>
17            <groupId>org.slf4j</groupId>
18            <artifactId>slf4j-api</artifactId>
19            <version>${slf4j.version}</version>
20        </dependency>
21        <dependency>
22            <groupId>junit</groupId>
23            <artifactId>junit</artifactId>
24            <version>${junit.version}</version>
25            <scope>test</scope>
26        </dependency>
27    </dependencies>
28
29    <build>
30        <testResources>
31            <testResource>
32                <directory>${project.build.directory}</directory>
33                <includes>
34                    <include>vw_jni.lib</include>
35                </includes>
36            </testResource>
37        </testResources>
38        <plugins>
39            <plugin>
40                <groupId>org.apache.maven.plugins</groupId>
41                <artifactId>maven-compiler-plugin</artifactId>
42                <version>3.2</version>
43                <configuration>
44                    <source>1.6</source>
45                    <target>1.6</target>
46                </configuration>
47            </plugin>
48            <plugin>
49                <groupId>org.apache.maven.plugins</groupId>
50                <artifactId>maven-antrun-plugin</artifactId>
51                <version>1.7</version>
52                <executions>
53                    <execution>
54                        <id>Build VW</id>
55                        <phase>process-classes</phase>
56                        <goals>
57                            <goal>run</goal>
58                        </goals>
59                        <configuration>
60                            <exportAntProperties>true</exportAntProperties>
61                            <target>
62                                <exec executable="make" failonerror="true" />
63                            </target>
64                        </configuration>
65                    </execution>
66                    <execution>
67                        <id>Clean VW</id>
68                        <phase>clean</phase>
69                        <goals>
70                            <goal>run</goal>
71                        </goals>
72                        <configuration>
73                            <exportAntProperties>true</exportAntProperties>
74                            <target>
75                                <exec executable="make" failonerror="true">
76                                    <arg value="clean" />
77                                </exec>
78                            </target>
79                        </configuration>
80                    </execution>
81                </executions>
82            </plugin>
83            <plugin>
84                <groupId>org.apache.maven.plugins</groupId>
85                <artifactId>maven-enforcer-plugin</artifactId>
86                <version>1.1</version>
87                <executions>
88                    <execution>
89                        <id>enforce-ban-duplicate-classes</id>
90                        <goals>
91                            <goal>enforce</goal>
92                        </goals>
93                        <configuration>
94                            <rules>
95                                <banDuplicateClasses>
96                                    <findAllDuplicates>true</findAllDuplicates>
97                                </banDuplicateClasses>
98                            </rules>
99                            <fail>true</fail>
100                        </configuration>
101                    </execution>
102                    <execution>
103                        <id>enforce-ban-version-downgrades</id>
104                        <goals>
105                            <goal>enforce</goal>
106                        </goals>
107                        <configuration>
108                            <rules>
109                                <requireUpperBoundDeps />
110                            </rules>
111                        </configuration>
112                    </execution>
113                </executions>
114                <dependencies>
115                    <dependency>
116                        <groupId>org.codehaus.mojo</groupId>
117                        <artifactId>extra-enforcer-rules</artifactId>
118                        <version>1.0-alpha-3</version>
119                    </dependency>
120                </dependencies>
121            </plugin>
122            <plugin>
123                <groupId>org.apache.maven.plugins</groupId>
124                <artifactId>maven-surefire-plugin</artifactId>
125                <version>2.17</version>
126                <executions>
127                    <execution>
128                        <id>surefire-test</id>
129                        <phase>test</phase>
130                        <goals>
131                            <goal>test</goal>
132                        </goals>
133                    </execution>
134                </executions>
135                <configuration>
136                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
137                </configuration>
138            </plugin>
139            <plugin>
140                <artifactId>maven-resources-plugin</artifactId>
141                <version>2.7</version>
142                <executions>
143                    <execution>
144                        <id>copy-resources</id>
145                        <phase>process-classes</phase>
146                        <goals>
147                            <goal>copy-resources</goal>
148                        </goals>
149                        <configuration>
150                            <outputDirectory>${project.build.outputDirectory}</outputDirectory>
151                            <resources>
152                                <resource>
153                                    <directory>${project.build.directory}</directory>
154                                    <includes>
155                                        <include>vw_jni.lib</include>
156                                    </includes>
157                                </resource>
158                            </resources>
159                        </configuration>
160                    </execution>
161                </executions>
162            </plugin>
163            <plugin>
164                <groupId>org.apache.maven.plugins</groupId>
165                <artifactId>maven-release-plugin</artifactId>
166                <version>2.4.2</version>
167                <dependencies>
168                    <dependency>
169                        <groupId>org.apache.maven.scm</groupId>
170                        <artifactId>maven-scm-provider-gitexe</artifactId>
171                        <version>1.3</version>
172                    </dependency>
173                </dependencies>
174                <executions>
175                    <execution>
176                        <id>default</id>
177                        <goals>
178                            <goal>perform</goal>
179                        </goals>
180                        <configuration>
181                            <pomFileName>java/pom.xml</pomFileName>
182                        </configuration>
183                    </execution>
184                </executions>
185            </plugin>
186        </plugins>
187    </build>
188</project>
189