I agree with Kenney on the need for environment specific filter files. I have used such an approach for M1 as follows:
<goal name="filter:init"> <!-- Check if an environment has been passed --> <maven:paramCheck value="${maven.filter.env}" fail="true" message="You have to define a filter environment with -Dmaven.filter.env"/> <!-- Validate that the environment is corectly configured for filtering --> <u:tokenize var="envs" delim=",">${maven.filter.env.list}</u:tokenize> <j:forEach var="env" items="${envs}"> <j:if test="${context.getVariable('maven.filter.env').toString().trim().equalsIgnoreCase(env)}"> <j:set var="env.prop" value="maven.filter.env.${maven.filter.env}"/> <j:set var="filter.file" value="${context.getVariable(context.getVariable(' env.prop'))}"/> <echo>Using environment filter ${filter.file}</echo> </j:if> </j:forEach> <maven:paramCheck value="${filter.file}" fail="true" message="No filter file has been defined for this environment"/> </goal> <goal name="filter:filter" description="Loads a hierarchy of properties for filtering" prereqs="filter:init"> <!-- Loading global filter --> <j:set var="filter.src" value="build.properties"/> <u:available file="${filter.src}"> <echo>Loading filter ${filter.src}</echo> <ant:filter filtersfile="${filter.src}"/> </u:available> <!--Loading environment specific filter --> <j:set var="filter.src" value="${filter.file}"/> <u:available file="${filter.src}"> <echo>Loading filter ${filter.src}</echo> <ant:filter filtersfile="${filter.src}"/> </u:available> <!-- Loading user defined filter --> <j:set var="filter.src" value="${user.home}/build.properties"/> <u:available file="${filter.src}"> <echo>Loading filter ${filter.src}</echo> <ant:filter filtersfile="${filter.src}"/> </u:available> </goal> I am wondering if M2 could have something like: <filtering> <filterTokens> <token>value</token> </filterTokens> <filterFiles> <filterFile env="foodev">foo.properties</filterFile> <filterFile>bar.properties</filterFile> </filterFiles> </filtering> Filters are applied in the order they are defined in the pom. Fileterfile foo.properties is only loaded when -Denv=foodev is passed. bar.properties is always loaded and overridden with what's define in the user's home build.properties. On 8/25/05, Brett Porter <[EMAIL PROTECTED]> wrote: > > > >Yes, I know - but I'm not sure how to add a nested structure to it, but > >perhaps I can figure it out somehow... > > > >But before I start working on a patch, I would like to know if there is > >general interest in it. I don't want to work for the trashcan :) > > > > > I think we're all interested, but I'd like to see the POM tags restated > to be sure we know where it is going. I lost it a bit in the thread. > > - Brett > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Cheers, Thomas