[
http://jira.codehaus.org/browse/MDEP-275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=263872#action_263872
]
Stephen Connolly commented on MDEP-275:
---------------------------------------
See
https://svn.codehaus.org/mojo/trunk/sandbox/extra-enforcer-rules/src/main/java/org/codehaus/mojo/enforcer/rule/BanDuplicateClassesRule.java@13945
> Figuring out duplicate class definitions using the Analyze goal
> ---------------------------------------------------------------
>
> Key: MDEP-275
> URL: http://jira.codehaus.org/browse/MDEP-275
> Project: Maven 2.x Dependency Plugin
> Issue Type: Improvement
> Components: analyze
> Affects Versions: 2.1
> Reporter: Petter Måhlén
> Assignee: Brian Fox
> Attachments: dependency-analyzer.diff, dependency-plugin.diff
>
>
> Hi,
> I've pretty frequently run into issues where changes to the library structure
> of some product (that is, changing the way that classes are grouped into
> libraries) leads to the same classes being defined in more than one place.
> This can lead to system-dependent problems, because different versions of the
> same class are being loaded by different systems.
> I was going to create a new goal for the dependency plugin to check for
> duplicate classes, but when I looked a bit closer at the analyze goal, it
> already had all the information needed to do that check as well, so I came up
> with some changes that add this functionality.
> The intended usage is something like:
> mvn dependency:analyze -DcheckDuplicateClasses
> I get the feeling that I might want to add the ability to exclude certain
> packages (that I might be comfortable are safe to have duplicates of), so I
> added this option too:
> mvn dependency:analyze -DcheckDuplicateClasses -DexcludePrefixes="org.,
> net.sf.cglib, javax.xml, junit."
> The output looks something like:
> [WARNING] Duplicate class definitions found:
> [WARNING] com.shopzilla.common.data.ObjectFactory defined in:
> [WARNING] com.shopzilla.site.url.c14n:model:jar:1.4:compile
> [WARNING] com.shopzilla.common.data:data-model-schema:jar:1.11:compile
> [WARNING] com.shopzilla.site.category.CategoryProvider defined in:
> [WARNING] com.shopzilla.site2.sasClient:sas-client-core:jar:5.47:compile
> [WARNING] com.shopzilla.site2.service:common-web:jar:5.50:compile
> A couple of notes:
> - I was unable to get configuration (setting checkDuplicateClasses, etc.)
> using the pom to work, but I think that might be due to lack of understanding
> on my part.
> - I don't fully understand the effect of calling compileProject() during unit
> tests, but I think it may be sufficient to call it only once for the
> duplicateClasses project, during setUp(). That would speed up the unit tests.
> - I haven't added duplicate class definition checking to the
> AnalyzeReportMojo, because I wanted to get some feedback on whether this
> addition was felt to be valuable before spending any time on that.
> - A lot of the unit test dummy code in the attached diff files needs cleaning
> up, but again I wanted to wait with that until hearing whether this might be
> useful to others.
> - I made an API change in the ProjectDependencyAnalyzer interface, which
> might be an issue if there are other implementations than the default one.
> That change was only needed to support the 'exclude package' feature, which
> might not be super-important.
> Cheers,
> Petter
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira