That's not going to work for the same reason. classpathDependencyExcludes removes a jar from the classpath, and you need the jar in the classpath, at least in most circumstances. A custom checkstyle rule might solve your problem, but you can't do it by changing the classpath.
On Fri, Jan 24, 2020 at 9:19 AM Scott Wilson <[email protected]> wrote: > > Thank you for replying Elliotte, > I hired someone on Fiverr to try to figure out a workaround for this. He was > not successful however he may have been close. He added > <classpathDependencyExcludes> to the build path in the pom.xml. Can you take > a look at the attached pom and see if there's anything I can do to make this > work? He was using gson in this example. > > Scott > > > > On Fri, Jan 24, 2020 at 5:02 AM Elliotte Rusty Harold <[email protected]> > wrote: >> >> That's a really interesting idea and I can see the use of it. I'm not >> sure it fits with how scopes work in Maven or classpaths in Java >> though. A scope generally defines which jars are and are not added to >> the classpaths of which goals/plugins/stages, not which parts of the >> source tree can see what. Perhaps this would work if your proposed >> main scope were added to compile and run but not test? However, I >> suspect the transitive dependencies would still be needed in the >> classpath or the tests will fail with runtime NoClassDefFoundErrors >> and the like. >> >> What you want sounds a little like strict_java_deps in bazel: >> https://blog.bazel.build/2017/06/28/sjd-unused_deps.html >> >> On Thu, Jan 23, 2020 at 2:17 AM Scott Wilson <[email protected]> wrote: >> > >> > *Hi Robert and devs* >> > >> > >> > *I have been using maven for a few years and I LOVE it!* >> > >> > >> > *I have a feature request.* >> > >> > >> > *(1) When adding a dependency to pom.xml the default scope is everywhere* >> > >> > *ie src/main/java/....* >> > >> > *and src/tst/java/...* >> > >> > >> > *(2) When adding <test> as the scope then the dependency can ONLY be used >> > under src/tst/java...* >> > >> > *If referencing the dependency in src/main/java/... then it will not >> > compile* >> > >> > >> > *(3) My feature request:* >> > >> > *I want the exact opposite. I'd like a new scope called <main>* >> > >> > *If the scope is <main> then the dependency can ONLY be used under >> > src/main/java/...* >> > >> > *If referencing the dependency in tst/main/java/.... then it will not >> > compile* >> > >> > >> > *I read up on scopes >> > (**https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope >> > <https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope>) >> > *and >> > AFAIK this is not currently supported, but I have a specific reason for >> > wanting this. >> > >> > >> > *I'd really appreciate if someone can add that for me and let me know when >> > it's done.* >> > >> > *Please let me know if you have any questions.* >> > >> > >> > *Regards* >> > >> > *Scott Wilson* >> > >> > *http://linkedin.com/in/hockeyeh <http://linkedin.com/in/hockeyeh>* >> >> >> >> -- >> Elliotte Rusty Harold >> [email protected] -- Elliotte Rusty Harold [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
