On 1/23/07, Yoav Shapira <[EMAIL PROTECTED]> wrote:

Hola,
I think that the commons-logging Maven POM
(
http://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk/pom.xml
in SVN) should specify scope="provided" for its Servlet API
dependency.  That helps users by not including the Servlet API in
packaged artifacts, such as WARs, that use commons-logging.

Is there a reason why the default scope ("compile") is used instead?
The provided scope, as described at

http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
,
is designed exactly for this use case.


It was an oversight.

BTW, I noticed the new optional=true parameter that's in the POM on
SVN trunk (see above URL), but not yet in the Maven repositories
(
ftp://ibiblio.org/pub/packages/maven2/commons-logging/commons-logging/1.1/commons-logging-1.1.pom
).


Yep ... basically we're waiting for someone to have the energy to manage a
1.1.1 release ... as far as I know there are no other outstanding issues
(there was a question of whether the trunk code works in applets, but AFAIK
the answer was yes).

That's a good step, but it's not sufficient for this case and does
not provide the same functionality as add scope="provided."


Why?  The part of C-L that depends on the servlet API is indeed optional,
and we don't want to trigger transitive dependencies on, say, a rich client
app that was using C-L and would not normally have a servlet API jar lying
around.  My understanding of "provided" is that this would still make the
servlet API be required, but not "included" with
commons-logging-xxx.jar(which does not really mean anything in a
project that produces a JAR
instead of a WAR).

Thanks,

Yoav


Craig


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to