What you're describing actually makes the most sense to me vs what
you're expecting...

Test scope means: when I am testing this particular artifact, I need
to include these dependencies in the classpath. But you're not testing
this artifact -- you're simply including it as a dependency of another
artifact -- so why in the world would those test scoped artifacts come
in? If you need these dependencies to test this other
artifact/project, then it must attach them itself. (aka, test scope is
not transitive)

Provide scope means: I need these artifacts to properly build and
use/run the code in this project, but I know these artifacts will be
provided by the environment I'll be executing in. When you bring this
dependency into another project, suddenly that new project is the
"environment" and so it must ensure that dependency is available in
the classpath (through provide or compile scope, as appropriate).
(aka, provide scope is not transitive)

I think that what you're seeing is exactly how it should work, and
your expectations are simply invalid. But I'm happy to be proven wrong
or continue this discussion.

Wayne

On 4/19/07, jp4 <[EMAIL PROTECTED]> wrote:

I have a project (common-data-access) of type pom that is used to group a
set
of common libraries for reuse.  In this case, I group all libraries that I
need for a data access project.  In each data access project in include
common-data-access as <type>pom</type>.  I have encountered two issues and I
was hoping someone could help me.  First, it appears as though artifacts
that are defined as <scope>provide</scope> in common-data-access are not
recognized by projects that include common-data-access.  The oracle jar file
is one example.  In addition, it appears as though dependencies with a test
scope are also not recognized by projects that include common-data-access.

Below is my pom.xml, am I doing something wrong here?

<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";>

        <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.foo</groupId>
        <artifactId>common-maven-build</artifactId>
        <version>8.1-SNAPSHOT</version>
    </parent>

        <groupId>com.foo</groupId>
        <artifactId>common-data-access</artifactId>
        <version>8.1-SNAPSHOT</version>
        <name>${artifactId}</name>
        <packaging>pom</packaging>

    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>oracle_jdbc</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>common-spring-util</artifactId>
        </dependency>
        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>common-configuration</artifactId>
        </dependency>
        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>common-abstract-unit-tests</artifactId>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.foo</groupId>
            <artifactId>common-configuration</artifactId>
            <scope>test</scope>
            <type>test-jar</type>
        </dependency>
    </dependencies>

</project>
--
View this message in context:
http://www.nabble.com/POM-for-common-libraries-tf3607983s177.html#a10080824
Sent from the Maven - Users mailing list archive at Nabble.com.


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



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

Reply via email to