Guo
Guo

Reputation: 1803

B module can't depend A module's dependency that declare provided scope in IDEA multi-module maven project?

Structure:

ROOT
  |- AModule
        |- pom.xml
  |- BModule
        |- pom.xml
  |- pom.xml(parent pom)

pom.xml in AModule:

<dependencies>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>30.1-jre</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>   <!--servlet-api declare "provided"-->
    </dependency>

</dependencies>

pom.xml in BModule(depend AModule):

<dependencies>
    <dependency>
        <groupId>org.example</groupId>
        <artifactId>AModule</artifactId>
        <version>1.0</version>
    </dependency>
</dependencies>

I want to use servlet-api in BModule(maybe more modules: CModule, DModule...), but it is not included in BModule, can BModule use dependency that declare <scope>provided</scope> in AModule? enter image description here

Upvotes: 0

Views: 36

Answers (1)

J Fabian Meier
J Fabian Meier

Reputation: 35833

No, provided dependencies are not transitive.

Furthermore, you should not directly use the dependencies of your dependencies. Better declare them explicitly.

Upvotes: 1

Related Questions