1
0

Fix use of optional dependencies; optional is a separate flag, not a scope.

Thanks to Wendy Smoak for pointing this out.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@476637 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Simon Kitching
2006-11-18 22:32:29 +00:00
parent e248866959
commit 531990ff9a

138
pom.xml
View File

@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
Licensed to the Apache Software Foundation (ASF) under one or more Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with contributor license agreements. See the NOTICE file distributed with
@@ -310,111 +309,38 @@
</plugins> </plugins>
</build> </build>
<!-- <dependencies>
- Special dependency handling follows. What we really want for JCL is to declare <dependency>
- dependencies that are required when compiling but optional at runtime. <groupId>junit</groupId>
- Unfortunately Maven2 doesn't support this directly; if we use normal dependency <artifactId>junit</artifactId>
- declarations then *users* of JCL will get all the supported logging libs <version>3.8.1</version>
- pulled into their project by default, but if we declare them optional then <scope>test</scope>
- when JCL is *compiled* we get none of them in the classpath. </dependency>
- A workaround is used here where two profiles are declared; one is active only <dependency>
- when compiling and has "normal" dependencies while the other is active when <groupId>log4j</groupId>
- other apps declare a dependency on this pom and as "optional" dependencies. <artifactId>log4j</artifactId>
--> <version>1.2.12</version>
<profiles> <optional>true</optional>
<profile> </dependency>
<id>build</id> <dependency>
<activation> <groupId>logkit</groupId>
<!-- <artifactId>logkit</artifactId>
- If this file is present in the current directory, then assume that <version>1.0.1</version>
- someone has checked out the JCL source code and is building it. In <optional>true</optional>
- this case declare "normal" dependencies so the logging adapters </dependency>
- can be compiled. <dependency>
--> <groupId>avalon-framework</groupId>
<file> <artifactId>avalon-framework</artifactId>
<exists>commons-logging-README.txt</exists> <version>4.1.3</version>
</file> <optional>true</optional>
</activation> </dependency>
<dependency>
<dependencies> <groupId>javax.servlet</groupId>
<dependency> <artifactId>servlet-api</artifactId>
<groupId>junit</groupId> <version>2.3</version>
<artifactId>junit</artifactId> <optional>true</optional>
<version>3.8.1</version> </dependency>
<scope>test</scope> </dependencies>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>logkit</groupId>
<artifactId>logkit</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>avalon-framework</groupId>
<artifactId>avalon-framework</artifactId>
<version>4.1.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>use</id>
<activation>
<!--
- If this file is not in the current directory, then assume that
- this pom is being processed because it is referenced as a
- dependency of some other project. In this case, don't pull in
- any particular logging library; the using project needs to declare
- a dependency on whatever lib they really want present.
-->
<file>
<missing>commons-logging-README.txt</missing>
</file>
</activation>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>optional</scope>
</dependency>
<dependency>
<groupId>logkit</groupId>
<artifactId>logkit</artifactId>
<version>1.0.1</version>
<scope>optional</scope>
</dependency>
<dependency>
<groupId>avalon-framework</groupId>
<artifactId>avalon-framework</artifactId>
<version>4.1.3</version>
<scope>optional</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
<scope>optional</scope>
</dependency>
</dependencies>
</profile>
</profiles>
<distributionManagement> <distributionManagement>