On Jun 10, 2008, at 5:25 PM, JerodLass wrote:
I am trying to do this from within a task defined in the subprojects{}
section. For now, before I get too excited about generating xml, I
just
want it to print out the resolved files. When I add this task to the
subprojects section:
createTask('cpGenXML', dependsOn: 'compile'){
println 'Project ' + project.name + ' getting resolved
dependencies...'
dependencies.resolve('compile').each {file->
println 'File ' + file.name + ' resolved.'
}
}
This is a good example :) How is the project variable resolved? It is
resolved to the project instance variable of the project with the
subprojects declaration. The same is true for the dependencies
variable. Thus the task you inject into your subprojects is the same
for every subproject.
When you add an action closure to a task, you may give a task
argument to this closure. With this task argument you can access
properties of the task within the action. One property of the task is
project.
createTask('cpGenXML', dependsOn: 'compile'){ task ->
println 'Project ' + task.project.name + ' getting resolved
dependencies...'
task.project.dependencies.resolve('compile').each {file->
println 'File ' + file.name + ' resolved.'
}
This should work.
The user's guide should cover this in detail. Right now it is hidden
in some examples (e.g. Page 38, the water gradlefile) without
explanation.
- Hans
The resulting output is:
Executing: :compile
Executing: :project1:cpGenXML
Project project2 getting resolved dependencies...
File proj2dep1.jar resolved.
File proj2dep2.jar resolved.
etc...
Executing: :project2:cpGenXML
Project project2 getting resolved dependencies...
File proj2dep1.jar resolved.
File proj2dep2.jar resolved.
etc...
It is supposed to be doing this for each project individually, but the
context is having a problem and it is getting project2's dependency
list no
matter which project it is executing the task from. Am I declaring
this
task wrong or in the wrong section? In the end, I'm going for a
task that
operated the same for eac project, taking the list of that project's
resolved dependencies and generating some xml. Note: project2
depends on
project1.
hdockter wrote:
On Jun 10, 2008, at 3:59 PM, JerodLass wrote:
In the meantime, is there a way to access a list of dependencies
I've
declared as objects (and work with them within a gradle task)?
You can write in any task for example:
dependencies.resolve('compile')
which returns a list of File objects pointing to the resolved
dependencies.
- Hans
Right now, it
looks like I'll have to run a script on the gradlefile to convert
compile
dependencies back to xml format for a .classpath file. The reason
for this
is I might add dependencies to a project I'm building with gradle
and
someone I'm working with may decide to build it with ant since
they're used
to it and their IDE is already ant-friendly.
--
View this message in context: http://www.nabble.com/gradlefile-
cleaning--tp17650512p17756151.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
--
Hans Dockter
Gradle Project lead
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
--
View this message in context: http://www.nabble.com/gradlefile-
cleaning--tp17650512p17758142.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
--
Hans Dockter
Gradle Project lead
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email