Ok Thank you Elliotte. I've googled checkstyle so will read up on that. Another solution: I created a dependency-checker.cfg and .sh file that looks for my dependencies in the wrong places and fails if it finds any violations. It's not as elegant as a checkstyle rule but is a starting point and I'll figure out the checkstyle.
Hey, if you and the rest of your team would like to connect on linkedin I'd love to have you in my network! linkedin.com/in/HockeyEh Scott linkedin.com/in/HockeyEh On Fri, Jan 24, 2020 at 8:34 AM Elliotte Rusty Harold <[email protected]> wrote: > 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] >
