On Nov 10, 2009, at 3:01 PM, Narco wrote:
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?
Ant is our friend. I don't see fundamental issues with using it. But
Gradle's copy has important advantages depending on your use case.
- It can accept Gradle's file system abstractions:
copy {
from configurations.runtime
}
- I really like the nested way of doing things and the syntax.
- You can copy subsets from archive and the archives will be never be
temporarily unpacked but only streamed.
- You can set file permissions (depending on the context)
- It is an common pattern used for copying into the file system as
well as filling an archive (in 0.9).
- We will listen to our user's and add the missing bits soon ;)
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.
Could you file a Jira?
- Hans
--
Hans Dockter
Gradle Project Manager
http://www.gradle.org
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
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email