In the past we had asserted that a user should be able to pick up an
individual sample and build it. Because of a recent change in the
samples this is no longer possible (at least not until we release some
artifacts that can be downloaded without building locally - see details
on the issue below).
I personally think it is acceptable to provide some general directions
on building samples that require a user (at least the first time) to
checkout the entire samples svn tree and build from the top level. It
takes about 5 minutes to build all of the samples. Following that
initial build a user could choose to build just one sample at a time. We
can also provide some more complicated directions for users that have
some issue with building all of the samples. If I don't hear any strong
objections (along with solutions to the current issue that requires a
top level build) then I will go ahead and change the doc accordingly.
Specifics on why this is an issue:
- We had to add in the building of a tomcat utility (Txt2Html included
in buildutil). This is used to generate html from java source and jsp
files. The html is then included with the jsp & servlet samples and can
be displayed when running the samples (we might want to consider this
for some of our other samples as well). The utility is run via ant and
so we are using the maven-antrun-plugin. When the configuration for
the execution of the utility was included in the specific sample it
worked great for just that one sample but produced errors when
attempting to build from a higher level. This is apparently because of
the way the the maven plugin is resolved and loaded. To get the build
working from the top level we had to move the dependency of the
antrun-plugin on buildutil up under pluginmanagement. However, this has
the effect of now requiring buildutil to be available for all samples
even if it is not used (since most samples use the antrun-plugin for
other purposes). There is a maven issue that describes our problem (and
indicates that it is fixed in maven 2.1.* but not 2.0.*) - MNG-1323
(http://jira.codehaus.org/browse/MNG-1323).
In addition to the issue above, there are other general build steps
required which will benefit from a common build process rather than
including them in each sample description. For example, we need to make
the svn repository artifacts for the specific server release available
in the user's local maven repo. I'd rather not have to include those
steps in each sample but rather point to a common build.
Thanks,
Joe