David Jencks wrote:
On Jul 18, 2008, at 10:35 AM, Joe Bohn wrote:
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.
I'm fine with this except I don't think we need to provide error-prone
instructions that are likely to stop working soon for people who don't
want to build all the samples.
I'm fine with eliminating the more complicated directions.
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).
I wonder if we should write a maven plugin to do this text to html
conversion? I haven't looked at what is going on or the problem at
all. It's hard to believe there is no solution available now.
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.
Maybe we should rethink our svn repository strategy. It doesn't really
work with the idea of plugins. How about if we do something like
shading the tomcat jars to another package and releasing them with our
groupId?
I think it would be great if we could release these images under some
other package so that they can be downloaded. However, I wonder if
there are dependencies that might be broken if we did something like
that (I mean apart from dependencies we create). At the moment we only
change the version # for our artifacts so any reference from poms would
not be affected unless the version number itself was included in the
reference.
thanks
david jencks
Thanks,
Joe