[ https://issues.apache.org/jira/browse/YETUS-897?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16980855#comment-16980855 ]
Sean Busbey commented on YETUS-897: ----------------------------------- Let's see what qabot says. The dependency is flagged optional, so it shouldn't be needed transitively at all. > Incorrect usage of Maven profile > -------------------------------- > > Key: YETUS-897 > URL: https://issues.apache.org/jira/browse/YETUS-897 > Project: Yetus > Issue Type: Bug > Components: Audience Annotations > Reporter: Martin Todorov > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > Hi, > A transitive dependency of our Gradle project requires {{compile group: > 'org.apache.yetus', name: 'audience-annotations', version: '0.10.0'}}. It > appears we may be hitting a [bug in > Gradle|https://github.com/gradle/gradle/issues/10058] in that it quite > possibly doesn't handle {{system}}-scoped and {{optional}} dependencies > properly. > I had a look at your project's {{pom.xml}} files and there are actually > issues with it as well. > Consider the following snippet: > {code:java} > <profiles> > <profile> > <id>jdk1.8</id> > <activation> > <jdk>(,1.8]</jdk> > </activation> > <dependencies> > <dependency> > <!-- Version and location set in project pom --> > <groupId>jdk.tools</groupId> > <artifactId>jdk.tools</artifactId> > <scope>system</scope> > <!-- Mark as optional so that it isn't taken transitively --> > <optional>true</optional> > </dependency> > </dependencies> > </profile> > </profiles> > <dependencies> > <dependency> > <!-- Version and location set in project pom --> > <groupId>jdk.tools</groupId> > <artifactId>jdk.tools</artifactId> > <scope>system</scope> > <!-- Mark as optional so that it isn't taken transitively --> > <optional>true</optional> > </dependency> > </dependencies> > {code} > What's the point in both having the {{jdk.tools}} dependencies define in a > profile and then also in the main {{<dependencies/>}} section? If you move > this dependency into the profile and remove the one from the main > {{<dependencies/>}} section, and make the profile activated via a system > property, or activate it through your {{settings.xml}} via the > {{activeProfile}} section, this should be okay. > I agree that theoretically, this is bad Maven practice, because it breaks > build portability, but on the other hand, you're already breaking build > portability by declaring a {{system}}-scoped dependency. > Is it really necessary to depend on the {{tools.jar}}? If you're using a JDK > to build the code, you should always have it on your classpath? What seems to > be the issue that you're trying to solve, (which I appear to be missing)? > I haven't gone through all of your project's {{pom.xml}} files, but I suspect > the same fix might be required elsewhere as well. > Please, advise! > Many thanks in advance! > Kind regards, > Martin -- This message was sent by Atlassian Jira (v8.3.4#803005)