Maven:Unpack-Dependencies ...然后忘记它们

mxr*_*xro 6 java maven-2

我有一个库A,它依赖于库B和C.我使用maven-dependency-plugin将B和C的库类解压缩到库A的jar中(见下文).

现在,当库D使用库A时,库D可以访问A,B和C的所有类.但是,我希望D仅依赖于A而不依赖于传递依赖性B和C.

替代文字

我知道这可以通过手动排除B和C作为依赖关系来实现,但我想以某种方式在A中声明B和C不会被使用A的模块知道.

        <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack-dependencies</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>unpack-dependencies</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

Pet*_*ans 6

我认为您可以使用"提供"范围标记依赖关系,因此依赖项目将假定jar已经"提供".通常它们由容器提供,在您的情况下,您依赖于"提供"它们.

在任何情况下,依赖于A的模块将忽略依赖关系B和C.