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 |
*------------------------------------------------------*