Well, I am not sure this is a good answer, but I found something that
works -- save it in the systemScope:

<preGoal name="build:start">
  <j:set var="svnRevision" 
value="${systemScope.getProperty('my.svnRevision')}"/>
  <j:if test="${svnRevision == null}">
    <ant:echo>Getting revision...</ant:echo>
    <!-- code to get svn revision omitted -->
    <j:set var="svnRevision" value="XXXXXX"/>
    <!-- save in system scope -->
    ${systemScope.setProperty('my.svnRevision', svnRevision)} 
  </j:if>
</preGoal>

Comments are still welcome. :-)

-Max

On Mon, 2006-01-16 at 15:14 -0800, Max Cooper wrote:
> I want to initialize a variable or property just once at the beginning
> of a multiproject build and then be able to access that value in any of
> the subprojects. Ideally, running a subproject build on it's own would
> also initialize the value.
> 
> For instance, so far I have something like this in my shared,
> common/maven.xml file:
> 
> <preGoal name="build:start">
>   <j:if test="${svnRevision == null}">
>     <ant:echo>Getting revision...</ant:echo>
>     <!-- code to get svn revision omitted, but I can post it if anyone
> is interested -->
>     <j:set var="svnRevision" value="XXXXXX"/>
>   </j:if>
> </preGoal>
> 
> This doesn't work -- "Getting revision..." is echoed for each subproject
> build, which means that svnRevision isn't set in the context of each of
> the individual builds. I don't actually think this code should work (it
> makes sense that each subproject *would* have it's own independent
> instance of the svnRevision variable) -- I am just looking for tips
> about what I might change to get it to work. I just don't know where I
> can "stash" the value so that it will be available in the subproject
> builds.
> 
> Thanks,
> -Max
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to