On 29.09.2005, at 16:19, John Casey wrote:
If you specify these two dependencies directly in your own dependency
set, and set their scope to provided, it should work.

That's what I thought. Doesn't work for me though (I think it did with previous versions):

// pom.xml
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>test</groupId>
    <artifactId>test</artifactId>
    <packaging>war</packaging>
    <version>0.1</version>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.4</version>
            <scope>provided</scope>
        </dependency>

       <dependency>
            <groupId>springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>1.2.4</version>
            <exclusions>
                <!-- faces api not available on repo1 -->
                <exclusion>
                    <groupId>javax.faces</groupId>
                    <artifactId>jsf-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
</project>

// create web.xml to make maven happy
$ mkdir -p src/main/webapp/WEB-INF
$ touch src/main/webapp/WEB-INF/web.xml

$ m2 package
[INFO] ------------------------------------------------------------------------ ----
[INFO] Building test:test:war:0.1
[INFO]    task-segment: [package]
[INFO] ------------------------------------------------------------------------ ----
[INFO] [resources:resources]
[WARNING]
Artifact javax.servlet:servlet-api:jar:2.4 has scope 'provided' replaced with 'compile' as a dependency has given a broader scope. If this is not intended, use -X to locate the dependency,
        or force the desired scope using dependencyManagement.
...
[INFO] [war:war]
[INFO] Copy webapp resources to test-0.1
[INFO] Assembling webapp test in test-0.1
[INFO] Generating war test-0.1.war
[INFO] Building war: test-0.1.war
[INFO] BUILD SUCCESSFUL

// oops
$ ls target/test-0.1/WEB-INF/lib | grep servlet
servlet-api-2.4.jar

FYI, DependencyManagement information is only triggered on demand. That
is, the info in the DependencyManagement section will be triggered if
you specify a dependency directly within your POM that matches the
groupId/artifactId of the info given in DependencyManagement. When this happens, any specification in the original dependency will dominate over
the corresponding info in the DependencyManagement section.

This means I can use a parent pom to specify default dependency info which can be overridden by child poms. Nice.

Thanks,
-Ralph.

Ralph Pöllath wrote:
| Hi,
|
| I get the following warning when packaging my webapp project:
|
| [WARNING]
|         Artifact javax.servlet:jsp-api:jar:2.0 has scope 'provided'
| replaced with 'compile'
|         as a dependency has given a broader scope. If this is not
| intended, use -X to locate the dependency,
|         or force the desired scope using dependencyManagement.
|
| Using -X tells me the dependency on javax.servlet:jsp-api-2.0 is
| introduced by springframework:spring-web-1.2.5, so I tried to exclude
| it like this:
|
| <dependency>
|     <groupId>springframework</groupId>
|     <artifactId>spring-web</artifactId>
|     <version>1.2.4</version>
|     <exclusions>
|         <exclusion>
|             <groupId>javax.servlet</groupId>
|             <artifactId>jsp-api</artifactId>
|         </exclusion>
|     </exclusions>
| </dependency>
|
| But unfortunately, jsp-api-2.0.jar still ends up in my war file,
| breaking my app.
|
| Now I'd like to "force the desired scope using dependencyManagement" as | mentioned in the warning, but cannot find any info on how to use the
| dependencyManagement section in the pom.
|
| I'd like to use it to tell m2 to always set the scope of
| javax.servlet:jsp-api and javax.servlet:servlet-api to provided, and to | completely ignore some transitive dependencies like ojb and toplink,
| which are introduced by springframework:spring-orm, for  example.
|
| Is that possible?
|
| Cheers,
| -Ralph.
|
|
|
|
| ---------------------------------------------------------------------
| To unsubscribe, e-mail: [EMAIL PROTECTED]
| For additional commands, e-mail: [EMAIL PROTECTED]
|
|
|
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFDO/f4K3h2CZwO/4URAhdxAJ9B0aNQT47F1Xz6sWXpqq5ix6c5SwCfTnwf
wtBsedkBkFQDCfc0OeBL6R0=
=HVC6
-----END PGP SIGNATURE-----

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