Hi,

I would like to request a packaging standard to be instituted in the java
projects at apache. This is similar to what Sam Ruby proposed before but on
a much lower scale. For instance when you download an apache project now
the positions of the files seem to be somewhat haphazardly placed.

Most have similar layout but there are some cases that are slightly
different and can be slightly frustrating when looking at the various
projects.

Most of the projects follow something similar to the following

<basedir>
        src/
        lib/
        build/
        bin/
        tools/

Under source some projects have another directory java (I assume because at
one stage there was non-java code in tree and you needed to differentiate
???) which holds the source and other projects have no such directory.

Some projects place all required .jar files in lib directory while some
place the .jar files in bin or in tools subdirectories.

Some projects copy source to another tree below build (I assume this is
becaues 1.1 doesn't have touch functionality ???) while others don't. I
believe most projects generate classes to build/classes while some have
further sub-directories (such as avalon).

Some build.xml files include help and most have similar options but may
generate output in different places. (ie javadoc sometimes goto
docs/apidocs sometimes to build/javadocs and othertimes to other places :P).

While it is not a major hassle moving between these projects it can be a
bit frustrating (in one case I deleted a directory I shouldn't have because
it was deletable in another project). 

Some suggestions (that you are free to ignore if you feel like it are)

<basedir>
        lib/                 <--------- includes required libraries
        src/                 <--------- includes required source
        bin/                 <--------- includes required scripts except 
build.sh
        docs/                <--------- includes basic docs/generated 
website-docs
        docs/apidocs         <--------- includes generated javadocs
        docs/src             <--------- includes document source if it is xml 
files
        build/classes        <--------- temporary place for .class files
        README               <--------- standard README or pointer to relevent 
doc
in docs
        INSTALL              <--------- standard INSTALL or pointer to relevent
doc in docs
        <outputs>.jar        <--------- includes generated code archives
        LICENSE        <--------- standard Apache LICENSE

Thoughts ???







Cheers,

Pete

*------------------------------------------------------*
| "Nearly all men can stand adversity, but if you want |
| to test a man's character, give him power."          |
|       -Abraham Lincoln                               |
*------------------------------------------------------*

Reply via email to