Hello. I'm working on an application that uses an embedded OSGi container to provide a plugin system.
The problem I'm running into is that I don't seem to have any way to distinguish between dependencies that are dependencies of the host, and dependencies that will only be present in the container. The distinction is that the former will be copied into a directory to be placed onto the classpath when the application is started and the latter will not be on the classpath but will instead be copied into a directory at build time to be scanned/installed by the container at runtime. I feel like the most natural way to specify this would be to be able to add a custom scope: <dependency> <groupId>x.y.z</groupId> <artifactId>example</artifactId> <version>0.1.0</version> <scope>container</scope> </dependency> The maven-dependency-plugin could then be instructed to copy host dependencies to one location, and container dependencies to another. This would also play nicely with IDEs that build classpaths from Maven dependencies (container-scoped dependencies wouldn't be on the classpath). Ideally, this container scope would be propagated transitively (although I'm not sure what happens if both the host and container indirectly depend on the same dependency). I can't distinguish based on types alone, as all of the dependencies are a mix of plain jars and OSGi bundles (some host dependencies are bundles, some are plain jars, all of the container dependencies are bundles). Is there some other way I can achieve this? Alternatives that don't play nicely with IDEs aren't an option. M
pgprmVe4iEg45.pgp
Description: OpenPGP digital signature