1<?xml version="1.0" encoding="UTF-8"?>
2
3<!--
4Copyright (c) 2006 Google, Inc. All rights reserved.
5
6This program is licensed to you under the Apache License Version 2.0,
7and you may not use this file except in compliance with the Apache License Version 2.0.
8You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
9
10Unless required by applicable law or agreed to in writing,
11software distributed under the Apache License Version 2.0 is distributed on an
12"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
14-->
15
16<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">
17
18  <modelVersion>4.0.0</modelVersion>
19
20  <parent>
21    <groupId>com.google</groupId>
22    <artifactId>google</artifactId>
23    <version>5</version>
24  </parent>
25
26  <packaging>pom</packaging>
27
28  <groupId>com.google.inject</groupId>
29  <artifactId>guice-parent</artifactId>
30  <version>4.0</version>
31
32  <name>Google Guice</name>
33
34  <description>
35    Guice is a lightweight dependency injection framework for Java 6 and above
36  </description>
37
38  <url>https://github.com/google/guice</url>
39  <inceptionYear>2006</inceptionYear>
40
41  <organization>
42    <name>Google, Inc.</name>
43    <url>http://www.google.com</url>
44  </organization>
45
46  <mailingLists>
47    <mailingList>
48      <name>Guice Users List</name>
49      <archive>http://groups.google.com/group/google-guice/topics</archive>
50      <subscribe>http://groups.google.com/group/google-guice/subscribe</subscribe>
51      <unsubscribe>http://groups.google.com/group/google-guice/subscribe</unsubscribe>
52      <post>http://groups.google.com/group/google-guice/post</post>
53    </mailingList>
54    <mailingList>
55      <name>Guice Developers List</name>
56      <archive>http://groups.google.com/group/google-guice-dev/topics</archive>
57      <subscribe>http://groups.google.com/group/google-guice-dev/subscribe</subscribe>
58      <unsubscribe>http://groups.google.com/group/google-guice-dev/subscribe</unsubscribe>
59      <post>http://groups.google.com/group/google-guice-dev/post</post>
60    </mailingList>
61  </mailingLists>
62
63  <scm>
64    <connection>scm:git:git://github.com/google/guice.git</connection>
65    <developerConnection>scm:git:ssh://git@github.com/google/guice.git</developerConnection>
66    <url>https://github.com/google/guice</url>
67  </scm>
68
69  <issueManagement>
70    <system>Google Code</system>
71    <url>https://github.com/google/guice/issues/</url>
72  </issueManagement>
73
74  <ciManagement>
75    <system>Travis</system>
76    <url>https://travis-ci.org/google/guice</url>
77  </ciManagement>
78
79  <licenses>
80    <license>
81      <name>The Apache Software License, Version 2.0</name>
82      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
83      <distribution>repo</distribution>
84    </license>
85  </licenses>
86
87  <distributionManagement>
88    <!-- override the parent's directory to point to the canonical place, and use https. -->
89    <repository>
90      <id>google-releases</id>
91      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
92    </repository>
93    <snapshotRepository>
94      <id>google-snapshots</id>
95      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
96    </snapshotRepository>
97  </distributionManagement>
98
99  <modules>
100    <module>bom</module>
101    <module>core</module>
102    <module>extensions</module>
103    <!-- jdk8-tests module activated only when running under JDK8, below -->
104  </modules>
105
106  <prerequisites>
107    <maven>3.0</maven>
108  </prerequisites>
109
110  <properties>
111    <!--
112     | The spec version of the public Guice API
113    -->
114    <guice.api.version>1.4</guice.api.version>
115    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
116    <!--
117     | Use "-Dguice.with.jarjar=false" to build without jarjar
118    -->
119    <guice.with.jarjar>true</guice.with.jarjar>
120    <!--
121     | Use "-Dguice.with.no_aop=false" to skip the no-AOP variant
122    -->
123    <guice.with.no_aop>true</guice.with.no_aop>
124    <gpg.skip>true</gpg.skip>
125  </properties>
126
127  <dependencyManagement>
128    <dependencies>
129      <dependency>
130        <groupId>javax.inject</groupId>
131        <artifactId>javax.inject</artifactId>
132        <version>1</version>
133      </dependency>
134      <dependency>
135        <groupId>javax.inject</groupId>
136        <artifactId>javax.inject-tck</artifactId>
137        <version>1</version>
138      </dependency>
139      <dependency>
140        <groupId>aopalliance</groupId>
141        <artifactId>aopalliance</artifactId>
142        <version>1.0</version>
143      </dependency>
144      <dependency>
145        <groupId>com.google.guava</groupId>
146        <artifactId>guava</artifactId>
147        <version>16.0.1</version>
148      </dependency>
149      <dependency>
150        <groupId>com.google.guava</groupId>
151        <artifactId>guava-testlib</artifactId>
152        <version>16.0.1</version>
153      </dependency>
154      <dependency>
155        <groupId>org.ow2.asm</groupId>
156        <artifactId>asm</artifactId>
157        <version>5.0.3</version>
158      </dependency>
159      <dependency>
160        <groupId>cglib</groupId>
161        <artifactId>cglib</artifactId>
162        <version>3.1</version>
163      </dependency>
164    </dependencies>
165  </dependencyManagement>
166
167  <dependencies>
168    <dependency>
169      <groupId>junit</groupId>
170      <artifactId>junit</artifactId>
171      <version>4.11</version>
172      <scope>test</scope>
173    </dependency>
174  </dependencies>
175
176  <build>
177    <!--
178     | Ant-style directories
179    -->
180    <sourceDirectory>${project.basedir}/src</sourceDirectory>
181    <resources>
182      <resource>
183        <filtering>false</filtering>
184        <directory>${project.basedir}/src</directory>
185        <excludes>
186          <exclude>**/*.java</exclude>
187        </excludes>
188      </resource>
189    </resources>
190    <testSourceDirectory>${project.basedir}/test</testSourceDirectory>
191    <testResources>
192      <testResource>
193        <filtering>false</filtering>
194        <directory>${project.basedir}/test</directory>
195        <excludes>
196          <exclude>**/*.java</exclude>
197        </excludes>
198      </testResource>
199    </testResources>
200    <pluginManagement>
201      <plugins>
202        <!--
203         | Use 'mvn license:format -N' at top of project to add missing headers
204        -->
205        <plugin>
206          <groupId>com.mycila</groupId>
207          <artifactId>license-maven-plugin</artifactId>
208          <version>2.6</version>
209          <configuration>
210            <encoding>UTF-8</encoding>
211            <header>${project.basedir}/lib/build/header.txt</header>
212            <headerDefinitions>
213              <headerDefinition>${project.basedir}/lib/build/header-definitions.xml</headerDefinition>
214            </headerDefinitions>
215            <skipExistingHeaders>true</skipExistingHeaders>
216            <aggregate>true</aggregate>
217            <includes>
218              <include>**/*.java</include>
219            </includes>
220            <excludes>
221              <!-- avoid touching munged/lib/test/example code -->
222              <exclude>**/build/**</exclude>
223              <exclude>**/target/**</exclude>
224              <exclude>**/lib/**</exclude>
225              <exclude>**/test/**</exclude>
226              <exclude>**/example*/**</exclude>
227            </excludes>
228            <mapping>
229              <java>JAVADOC_STYLE</java>
230            </mapping>
231          </configuration>
232        </plugin>
233        <!--
234         | Standard LICENSE and NOTICE files
235        -->
236        <plugin>
237          <artifactId>maven-remote-resources-plugin</artifactId>
238          <version>1.1</version>
239          <executions>
240            <execution>
241              <goals>
242                <goal>process</goal>
243              </goals>
244              <configuration>
245                <resourceBundles>
246                  <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
247                </resourceBundles>
248              </configuration>
249            </execution>
250          </executions>
251        </plugin>
252        <!--
253         | Make sure we only use Java6 methods
254        -->
255        <plugin>
256          <artifactId>maven-compiler-plugin</artifactId>
257          <version>2.3.2</version>
258          <configuration>
259            <source>1.6</source>
260            <target>1.6</target>
261          </configuration>
262        </plugin>
263        <plugin>
264          <groupId>org.codehaus.mojo</groupId>
265          <artifactId>animal-sniffer-maven-plugin</artifactId>
266          <version>1.10</version>
267          <configuration>
268            <signature>
269              <groupId>org.codehaus.mojo.signature</groupId>
270              <artifactId>java16</artifactId>
271              <version>1.0</version>
272            </signature>
273          </configuration>
274          <executions>
275            <execution>
276              <id>check-java-1.6-compat</id>
277              <phase>process-classes</phase>
278              <goals>
279                <goal>check</goal>
280              </goals>
281            </execution>
282          </executions>
283        </plugin>
284        <plugin>
285          <artifactId>maven-surefire-plugin</artifactId>
286          <version>2.5</version>
287          <configuration>
288            <redirectTestOutputToFile>true</redirectTestOutputToFile>
289            <!--<argLine>-Dguice_include_stack_traces=OFF</argLine>-->
290          </configuration>
291          <executions>
292            <execution>
293              <id>stack-traces-off</id>
294              <phase>test</phase>
295              <goals><goal>test</goal></goals>
296              <configuration>
297                <argLine>-Dguice_include_stack_traces=OFF</argLine>
298              </configuration>
299            </execution>
300            <execution>
301              <id>stack-traces-complete</id>
302              <phase>test</phase>
303              <goals><goal>test</goal></goals>
304              <configuration>
305                <argLine>-Dguice_include_stack_traces=COMPLETE</argLine>
306              </configuration>
307            </execution>
308            <execution>
309              <id>default-test</id>
310              <phase>test</phase>
311              <goals><goal>test</goal></goals>
312              <configuration>
313                <argLine>-Dguice_include_stack_traces=ONLY_FOR_DECLARING_SOURCE</argLine>
314              </configuration>
315            </execution>
316          </executions>
317        </plugin>
318        <!--
319         | Shared OSGi manifest configuration
320        -->
321        <plugin>
322          <groupId>org.apache.felix</groupId>
323          <artifactId>maven-bundle-plugin</artifactId>
324          <version>2.1.0</version>
325          <configuration>
326            <instructions>
327              <module>com.google.inject</module>
328              <_include>-${project.basedir}/build.properties</_include>
329              <Bundle-Copyright>Copyright (C) 2006 Google Inc.</Bundle-Copyright>
330              <Bundle-DocURL>https://github.com/google/guice</Bundle-DocURL>
331              <Bundle-Name>${project.artifactId}</Bundle-Name>
332              <Bundle-SymbolicName>$(module)</Bundle-SymbolicName>
333              <Bundle-RequiredExecutionEnvironment>JavaSE-1.6</Bundle-RequiredExecutionEnvironment>
334              <Import-Package>!com.google.inject.*,*</Import-Package>
335              <_exportcontents>!*.internal.*,$(module).*;version=${guice.api.version}</_exportcontents>
336              <_versionpolicy>$(version;==;$(@))</_versionpolicy>
337              <_nouses>true</_nouses>
338              <_removeheaders>
339                Embed-Dependency,Embed-Transitive,
340                Built-By,Tool,Created-By,Build-Jdk,
341                Originally-Created-By,Archiver-Version,
342                Include-Resource,Private-Package,
343                Ignore-Package,Bnd-LastModified
344              </_removeheaders>
345            </instructions>
346          </configuration>
347          <executions>
348            <execution>
349              <phase>prepare-package</phase>
350              <goals>
351                <goal>manifest</goal>
352              </goals>
353            </execution>
354          </executions>
355        </plugin>
356        <!--
357         | Package OSGi manifest in final JAR, also create a JAR of the test classes
358        -->
359        <plugin>
360          <artifactId>maven-jar-plugin</artifactId>
361          <version>2.3.1</version>
362          <configuration>
363            <archive>
364              <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
365              <!--  Exclude to mirror ant build -->
366          <addMavenDescriptor>false</addMavenDescriptor>
367            </archive>
368          </configuration>
369          <executions>
370            <execution>
371              <phase>package</phase>
372              <goals>
373                <goal>test-jar</goal>
374              </goals>
375            </execution>
376          </executions>
377        </plugin>
378        <plugin>
379          <artifactId>maven-javadoc-plugin</artifactId>
380          <version>2.7</version>
381          <executions>
382            <execution>
383              <phase>package</phase>
384              <goals>
385                <goal>jar</goal>
386              </goals>
387            </execution>
388          </executions>
389        </plugin>
390        <plugin>
391          <artifactId>maven-source-plugin</artifactId>
392          <version>2.1.2</version>
393          <executions>
394            <execution>
395              <phase>package</phase>
396              <goals>
397                <goal>jar</goal>
398                <goal>test-jar</goal>
399              </goals>
400            </execution>
401          </executions>
402        </plugin>
403        <plugin>
404          <artifactId>maven-release-plugin</artifactId>
405          <version>2.1</version>
406          <configuration>
407            <autoVersionSubmodules>true</autoVersionSubmodules>
408          </configuration>
409        </plugin>
410        <plugin>
411          <artifactId>maven-deploy-plugin</artifactId>
412          <version>2.5</version>
413        </plugin>
414      </plugins>
415    </pluginManagement>
416    <plugins>
417      <!--
418       | Sign artifacts.
419      -->
420      <plugin>
421        <artifactId>maven-gpg-plugin</artifactId>
422        <version>1.4</version>
423        <executions>
424          <execution>
425            <id>sign-artifacts</id>
426            <phase>verify</phase>
427            <goals><goal>sign</goal></goals>
428          </execution>
429        </executions>
430      </plugin>
431    </plugins>
432  </build>
433
434  <profiles>
435    <profile>
436      <id>jdk8</id>
437      <activation>
438        <jdk>[1.8,)</jdk>
439      </activation>
440      <!-- Activate jdk8-tests module only under JDK 8 -->
441      <modules>
442        <module>jdk8-tests</module>
443      </modules>
444      <!-- Disable doclint under JDK 8 -->
445      <reporting>
446      <plugins>
447          <plugin>
448            <groupId>org.apache.maven.plugins</groupId>
449            <artifactId>maven-javadoc-plugin</artifactId>
450            <configuration>
451              <additionalparam>-Xdoclint:none</additionalparam>
452            </configuration>
453          </plugin>
454        </plugins>
455      </reporting>
456      <build>
457        <plugins>
458          <plugin>
459            <groupId>org.apache.maven.plugins</groupId>
460            <artifactId>maven-javadoc-plugin</artifactId>
461            <configuration>
462              <additionalparam>-Xdoclint:none</additionalparam>
463            </configuration>
464          </plugin>
465        </plugins>
466      </build>
467    </profile>
468  </profiles>
469  <!-- TODO(cgruber): Update the google parent pom or migrate to sonatype's -->
470</project>
471