This is generally a tad tricky.

1. Because of class unloading it may not be possible to use the Hack-type
solution of stashing the data in a Class level static field. Though that
solution will work as long as the field uses a collection type that allows
for GC when the MavenProject that it is caching a value for has been
collected by GC (think of the users of Maven Embedder who's Maven process
may be long lived and reused multiple times)

2. Easiest way may just be to serialize the value into a string form and
set a project property with a non-maven resolvable name to the string
value. For example I do not think it is possible to have a Maven property
start with the null character.

You code will need to be defensive, and if the property (or cache value if
you go route 1) is missing it will have to calculate the value from scratch


On 24 July 2013 12:57, Francesco Mari <mari.france...@gmail.com> wrote:

> Hi,
>
> I wrote some MOJOs which use common data. This data depends on the
> structure of the project and can't be changed at runtime.
>
> I would like to compute this information at the beginiing of the build
> process, and re-use it in each related goal. Ideally, the first goal should
> compute the data, and the following ones will just use it.
>
> Which is the best option? Are there any plugins already implementing such a
> strategy, so I can take a look at their source code?
>

Reply via email to