On Dec 26, 2017 11:34, "Stephen Connolly" <[email protected]> wrote:
On Sun 24 Dec 2017 at 18:01, Andy Feldman <[email protected]> wrote: > Assuming I have a dependency relationship of "my-project -> my-library -> > upstream-library", with each dependency in compile scope, I know that > my-project transitively picks up a compile scope dependency on > upstream-library. Reading the documentation at > > https://maven.apache.org/guides/introduction/introduction-to-dependency- mechanism.html > I see a note about this transitive dependency: > > "(*) Note: it is intended that this should be runtime scope instead, so > that all compile dependencies must be explicitly listed - however, there is > the case where the library you depend on extends a class from another > library, forcing you to have available at compile time. For this reason, > compile time dependencies remain as compile scope even when they are > transitive." > > If I know that my-library does not have this issue, is there any way to > declare the dependencies such that I can get the intended behavior? I want > upstream-library to be picked up as runtime scope for my-project, not as > compile scope. Declare it with scope “runtime”? It needs to be compile scope in my-library since my-library uses classes from upstream-library. I'd like to avoid declaring upstream-library at all in my-project if possible, since my-project has nothing to do with upstream-library. > > > Thanks, > -- > Andy Feldman > -- Sent from my phone
