feb7071a1eb088f7f2e88767424a907b78156da1
[aaa.git] / aaa-cli-jar / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 Copyright (c) 2016 Red Hat, Inc. and others. All rights reserved.
4
5 This program and the accompanying materials are made available under the
6 terms of the Eclipse Public License v1.0 which accompanies this distribution,
7 and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
8 -->
9 <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">
10   <modelVersion>4.0.0</modelVersion>
11
12   <parent>
13     <groupId>org.opendaylight.aaa</groupId>
14     <artifactId>aaa-parent</artifactId>
15     <version>0.16.10-SNAPSHOT</version>
16     <relativePath>../parent</relativePath>
17   </parent>
18
19   <artifactId>aaa-cli-jar</artifactId>
20   <name>ODL :: aaa :: ${project.artifactId}</name>
21   <packaging>jar</packaging>
22
23   <dependencies>
24     <dependency>
25       <groupId>com.google.guava</groupId>
26       <artifactId>guava</artifactId>
27     </dependency>
28     <dependency>
29       <groupId>net.sf.jopt-simple</groupId>
30       <artifactId>jopt-simple</artifactId>
31       <version>5.0.4</version>
32     </dependency>
33     <dependency>
34       <groupId>org.opendaylight.aaa</groupId>
35       <artifactId>aaa-idm-store-h2</artifactId>
36       <exclusions>
37         <exclusion>
38           <!-- Completely disable transitive dependencies -->
39           <groupId>*</groupId>
40           <artifactId>*</artifactId>
41         </exclusion>
42       </exclusions>
43     </dependency>
44     <!-- Now repeat the few really needed dependencies which we would normally get transitively -->
45     <dependency>
46       <groupId>org.opendaylight.aaa</groupId>
47       <artifactId>aaa-authn-api</artifactId>
48     </dependency>
49     <dependency>
50       <groupId>org.apache.commons</groupId>
51       <artifactId>commons-text</artifactId>
52     </dependency>
53     <dependency>
54       <groupId>com.h2database</groupId>
55       <artifactId>h2</artifactId>
56       <scope>compile</scope>
57     </dependency>
58
59     <!-- Now for the FAT JAR we need to fix up some <scope>provided to be <scope>compile -->
60     <dependency>
61       <groupId>org.slf4j</groupId>
62       <artifactId>slf4j-api</artifactId>
63       <scope>compile</scope> <!-- Not provided -->
64     </dependency>
65     <dependency>
66       <groupId>org.slf4j</groupId>
67       <artifactId>slf4j-simple</artifactId>
68       <scope>compile</scope> <!-- Not test -->
69     </dependency>
70     <!-- Testing Dependencies -->
71     <dependency>
72       <groupId>org.opendaylight.yangtools</groupId>
73       <artifactId>testutils</artifactId>
74     </dependency>
75     <dependency>
76       <groupId>org.opendaylight.aaa</groupId>
77       <artifactId>aaa-password-service-api</artifactId>
78     </dependency>
79     <dependency>
80       <groupId>org.opendaylight.aaa</groupId>
81       <artifactId>aaa-password-service-impl</artifactId>
82     </dependency>
83   </dependencies>
84
85   <build>
86     <plugins>
87       <plugin>
88         <artifactId>maven-failsafe-plugin</artifactId>
89         <!-- TODO Remove when https://git.opendaylight.org/gerrit/#/c/48400/ is merged -->
90         <executions>
91           <execution>
92             <id>integration-test</id>
93             <goals>
94               <goal>integration-test</goal>
95             </goals>
96           </execution>
97           <execution>
98             <id>verify</id>
99             <goals>
100               <goal>verify</goal>
101             </goals>
102           </execution>
103         </executions>
104       </plugin>
105       <plugin>
106         <groupId>org.apache.maven.plugins</groupId>
107         <artifactId>maven-shade-plugin</artifactId>
108         <executions>
109           <execution>
110             <id>shade</id>
111             <phase>package</phase>
112             <goals>
113               <goal>shade</goal>
114             </goals>
115             <configuration>
116               <createDependencyReducedPom>false</createDependencyReducedPom>
117               <minimizeJar>true</minimizeJar>
118               <filters>
119                 <filter>
120                   <artifact>org.opendaylight.aaa:aaa-shiro</artifact>
121                   <includes>
122                     <include>org/opendaylight/**</include>
123                   </includes>
124                 </filter>
125                 <filter>
126                   <artifact>com.h2database:h2</artifact>
127                   <!-- FIXME: switch to exclusions, as this list is not maintainable -->
128                   <includes>
129                     <include>org/h2/Driver.class</include>
130                     <include>org/h2/JdbcDriverBackwardsCompat.class</include>
131                     <include>org/h2/api/**</include>
132                     <include>org/h2/command/**</include>
133                     <include>org/h2/compress/**</include>
134                     <include>org/h2/constraint/**</include>
135                     <include>org/h2/engine/**</include>
136                     <include>org/h2/expression/**</include>
137                     <include>org/h2/index/**</include>
138                     <include>org/h2/jdbc/**</include>
139                     <include>org/h2/message/**</include>
140                     <include>org/h2/mode/**</include>
141                     <include>org/h2/mvstore/**</include>
142                     <include>org/h2/pagestore/**</include>
143                     <include>org/h2/result/**</include>
144                     <include>org/h2/schema/**</include>
145                     <include>org/h2/security/**</include>
146                     <include>org/h2/store/**</include>
147                     <include>org/h2/table/**</include>
148                     <include>org/h2/upgrade/**</include>
149                     <include>org/h2/util/**</include>
150                     <include>org/h2/value/**</include>
151                   </includes>
152                 </filter>
153                 <filter>
154                   <artifact>org.opendaylight.aaa:aaa-password-service-api</artifact>
155                   <includes>
156                     <include>org/opendaylight/**</include>
157                   </includes>
158                 </filter>
159                 <filter>
160                   <artifact>org.opendaylight.aaa:aaa-password-service-impl</artifact>
161                   <includes>
162                     <include>org/opendaylight/**</include>
163                   </includes>
164                 </filter>
165               </filters>
166               <transformers>
167                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
168                   <mainClass>org.opendaylight.aaa.cli.jar.Main</mainClass>
169                 </transformer>
170               </transformers>
171             </configuration>
172           </execution>
173         </executions>
174       </plugin>
175     </plugins>
176   </build>
177
178 </project>