On Sun, May 05, 2002 at 03:40:03AM +0200, Rainer Hermanns wrote:
> To suggest a solution, I think it would be useful, to create a wrapper
> task for checkstyle, which maps the directories as correctly as the jxr
> task does, recursively down from $src.dir with each "sub module" checked
> separately.
> 
> What do think about this solution?

As you noted, the real problem here is the fact that <sourceDirectories>
can specifiy one or more directories, yet the checkstyle task can only
work with a single source directory.  It does not currently operate on a
reference such as src.set (similiar to the way the jxr task).  

There were two solutions I was contemplating:

1.  I was going to write a patch for the Checkstyle guys so their Ant
    task would not only accept a single directory, but alternatively a
    reference instead (this lets us use our src.set reference).  In
    addition, I was going to modify their task so that absolute paths
    weren't generated but rather relative ones.  This would then
    generate an hierarchy identical to the jxr output and thus make
    linking to the jxr output trivial.

2.  Try to convince people that <sourceDirectories> in the POM should
    only point to one directory instead of one or more.  This change was
    made to the unit test and integration test elements (only one
    directory can be specified), so I was going to try and push for
    consistency.  If the source directory is limited to a single
    directory then all of these linking issues becomes trivial as well
    because all these Ant tasks use the same directory when they start
    processing.

3.  As a short term "hack", the checkstyle.dvsl stylesheet could just
    strip off any prefix that matches any of the <sourceDirectory>
    elements.  This would then generate a normalized output that would
    be easy to link to the jxr output.  However, this is a hack.

In any case, I'd prefer #1 or #2, and I tend towards #2 because it seems
that we are just going to keep encountering this problem over and over
again.  There are many more Ant tasks that take a single source
directory vs those that take path references.  What are other people's
opinions?  How important is the ability to specify multiple source
directories?  It would seem to me that if you have a project spread
across different directories then you have an organization issue.

Pete

Reply via email to