Yes, it works. However, I don`t see any improvements of copying task from
gradle. It doesn`t support even filtersfile and overwrite attributes. I`m
going to use normal project.ant instead... Why not?
What is not working for me is replacing tokens in target folder without
copying. "Copy" seems simply skipping task when source and target is the
same. If Gradle could do that it will give performance and simpler scripts.


Steve Appling wrote:
> 
> Sorry, I had only looked at the ant ReplaceTokens documentation and not at
> the 
> source.  It does not support a setPropertiesfile method to allow access to
> this 
> feature :(
> 
> But (again without having tried this myself) perhaps this is sufficient:
> 
>   Properties props = new Props()
>   props.load(...)
> 
>   copy {
>      from 'path_to_file_to_be_filtered'
>      into ...
>      filter(ReplaceTokens, tokens: props)
>   }
> 
> I'm not clear why Hans had a props.each surrounding the filter in his
> example.
> 
> Narco wrote:
>> on gradle0.8 filter(ReplaceTokens, propertiesfile:
>> 'mysettings.properties')
>> gives:
>> Cause: Error - Invalid filter specification for
>> org.apache.tools.ant.filters.ReplaceTokens
>> 
>> 
>> Steve Appling wrote:
>>>
>>>
>>> Hans Dockter wrote:
>>>> On Nov 4, 2009, at 3:04 PM, Jason Porter wrote:
>>>>
>>>>> Sent from my iPhone
>>>>>
>>>>> On Nov 4, 2009, at 4:43, Levi Hoogenberg <[email protected] 
>>>>> <mailto:[email protected]>> wrote:
>>>>>
>>>>>> Hi Jason,
>>>>>>
>>>>>> I don't know if it's the Gradle way, but in one of my projects' 
>>>>>> build.gradle I have the following:
>>>>>>
>>>>>> processResources {
>>>>>>     filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: 
>>>>>> [version: project.version])
>>>>>> }
>>>>>>
>>>>>> This replaces @version@ in a property file, so that it can be read 
>>>>>> from the code.
>>>> The processResources task is of type Copy.
>>>>
>>>> See 
>>>> Javadoc:
>>>> http://gradle.org/0.8/docs/javadoc/index.html?org/gradle/api/tasks/Copy.html
>>>>
>>>> What you could do in your case:
>>>>
>>>> Properties props = new Props()
>>>> props.load(...)
>>>>
>>>> copy {
>>>>    from 'path_to_file_to_be_filtered'
>>>>    into ...
>>>>    props.each { key, value ->
>>>>       filter(ReplaceTokens, tokens: props) // It depends on you set up 
>>>> if this is exactly what you want.
>>>>    }
>>>> }
>>>>
>>>> - Hans
>>>>
>>>> --
>>>> Hans Dockter
>>>> Gradle Project Manager
>>>> http://www.gradle.org
>>> I haven't tried this, but I think the ReplaceTokens filter can read from
>>> a 
>>> properties file all by itself so you can do:
>>> copy {
>>>      from 'path_to_file_to_be_filtered'
>>>      into ...
>>>      filter(ReplaceTokens, propertiesfile: 'mysettings.properties')
>>> }
>>>
>>>
>>>>>> Regards,
>>>>>>   Levi
>>>>>>
>>>>>> On Wed, Nov 4, 2009 at 7:46 AM, Jason Porter < 
>>>>>> <http://lightguard.jp/>lightguard.jp <http://lightguard.jp/>@ 
>>>>>> <http://gmail.com/>gmail.com <http://gmail.com/>> wrote:
>>>>>>
>>>>>>     In a war I've got I'd like to filter a file that ultimately ends
>>>>>>     up in
>>>>>>     the WEB-INF directory (chances are I'll just put it here under
>>>>>>     webapp/WEB-INF anyway), but I want to replace some tokens in it
>>>>>>     (preferably with items that exist in a properties file).  I know
>>>>>> how
>>>>>>     I'd do this in ant, but what's the gradle way of doing it?
>>>>>>
>>>>>>     --
>>>>>>     Jason Porter
>>>>>>     Real Programmers think better when playing Adventure or Rogue.
>>>>>>
>>>>>>     PGP key id: 926CCFF5
>>>>>>     PGP fingerprint: 64C2 C078 13A9 5B23 7738 F7E5 1046 C39B 926C
>>>>>> CFF5
>>>>>>     PGP key available at: <http://keyserver.net/>keyserver.net
>>>>>>     <http://keyserver.net/>, <http://pgp.mit.edu/>pgp.mit.edu
>>>>>>     <http://pgp.mit.edu/>
>>>>>>
>>>>>>    
>>>>>> ---------------------------------------------------------------------
>>>>>>     To unsubscribe from this list, please visit:
>>>>>>
>>>>>>        
>>>>>>    
>>>>>> <http://xircles.codehaus.org/manage_email>http://xircles.codehaus.org/manage_email
>>>>>>
>>>>>>
>>>>>>
>>>>> That would work fine, but I don't want to list the tokens and their 
>>>>> values in the build file. I'd rather have them pulled from a 
>>>>> properties file (so it can change from box / environment). Think stuff 
>>>>> like user names and passwords, external locations, etc.
>>> -- 
>>> Steve Appling
>>> Automated Logic Research Team
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this list, please visit:
>>>
>>>     http://xircles.codehaus.org/manage_email
>>>
>>>
>>>
>>>
>> 
> 
> -- 
> Steve Appling
> Automated Logic Research Team
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>     http://xircles.codehaus.org/manage_email
> 
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/How-to-do-a-copy-filter-the-gradle-way--tp26191753p26283890.html
Sent from the gradle-user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to