Hi Adam,
On Tue, Jan 5, 2010 at 4:15 AM, Adam Murdoch <[email protected]> wrote:
>
>
> On 4/01/10 8:36 PM, Narco wrote:
>
> Hans, as I already said there is no configuration object so I have no idea
> how to get that 'pathWithCustomAntTask.jar'.
> So, how to get dependencies path from initscript? example:
> initscript {
> repositories {
> add(new org.apache.ivy.plugins.resolver.URLResolver()) {
> ...
> }
> }
> dependencies {
> classpath group: 'ant-apache-oro', name: 'ant-apache-oro', version:
> '1.7.1'
> classpath group: 'jakarta-oro', name: 'jakarta-oro', version:
> '2.0.8'
> }
> }
> AntBuilder ant = new AntBuilder()
> //now I should add jars from dependencies to ant classpath, please help
> ant.p4sync(view: "...${changelist}")
>
>
>
> You can use initscript.configurations.classpath, which is a Configuration
> object. Or you could add a p4 configuration:
>
> initscript {
> configurations.add('p4')
> repositories { ... }
> dependencies { p4 group: ..., name: ..., version: ... }
> }
>
> and use initscript.configurations.p4
>
> I've added http://jira.codehaus.org/browse/GRADLE-792 and
> http://jira.codehaus.org/browse/GRADLE-793 to improve this for init
> scripts.
>
Thanks Adam. I forgot about that.
- Hans
>
>
> Hans Dockter wrote:
>
>
> On Tue, Dec 22, 2009 at 11:14 AM, Narco <[email protected]> <[email protected]>
> wrote:
>
>
>
> John, You got my point how things should work :) However, I don`t want to
> use
> gradlew. I already have special bootstrap tool which downloads jdk,
> gradle,
> gwt etc from internal repository to set up client machine or even build
> machine. I need to ensure build reproducibility what means I need to be
> able
> to build any previous project state with simple switch on command line.
> At
> the same time I need to be sure that all client machines always builds
> with
> latest build scripts and sources when no switch is specified. This can be
> done only before project build. Since init.script is also managed by my
> bootstrap (dedicated from project) I can use it for this synchronization
> from VCS.
>
> So, Hans, Yes, I want to _execute_ the perforce ant task when the init
> script is evaluated.
>
>
>
> You can use the plain Groovy AntBuilder in the init.gradle.
>
> AntBuilder ant = new AntBuilder()
> ant.getClass().classLoader.addURL(new
> File('pathWithCustomAntTask.jar').toURL()) }
> ant.someAntTask {
>
> }
>
> - Hans
>
> --
> Hans Dockter
> Gradle Project Managerhttp://www.gradle.org
>
>
> John Murph wrote:
>
>
> On Mon, Dec 21, 2009 at 10:50 AM, Hans Dockter <[email protected]>
> <[email protected]> wrote:
>
>
>
> On Mon, Dec 21, 2009 at 10:58 AM, Narco <[email protected]> <[email protected]>
> wrote:
>
>
>
> I see, is there a JIRA issue?
> I have a bit complicated problem since I need to get it working from
> init.gradle script where object configurations does not exists.
>
>
> Please
>
>
> help.
>
>
>
> You don't need configurations. You just need file objects for
>
>
> injecting
>
>
> the
> jars into the classloader.
>
> Do you want to _execute_ the perforce java task when the init script
>
>
> is
>
>
> evaluated?
>
>
>
>
> Wow, that's interesting. I envision giving someone gradlew (and
>
>
> friends)
>
>
> and an init.script. When they run it, it could pull down the "correct
> version" of Gradle (this makes it a bit different from gradlew,
>
>
> though...)
>
>
> and then run the init script. That script could then pull the
>
>
> necessary
>
>
> sources from VCS (Perforce, or whatever) and then build it, which means
>
>
> I
>
>
> want to _execute_ tasks from my init script. For what I'm thinking, I
> would
> want gradlew to get a specific release of Gradle, but be able to change
> that
> without touching the client machine. Maybe have gradlew get Gradle
>
>
> from
>
>
> my
> own repository and use the latest version (I'm assuming I would never
>
>
> want
>
>
> to go back to an older version). In gradle-wrapper.properties, can
> distributionVersion be '0.9+'? Or could I get gradlew to pull down a
>
>
> new
>
>
> gradle-wrapper.properties from my binary repository and then use that
> properties file to find the Gradle to use?
>
> BTW, the reason that I care is when I'm thinking about integrating
>
>
> Gradle
>
>
> into our build process that involves non-software development teams.
>
>
> For
>
>
> instance, we have a team that produces other data that goes into our
> product. I want these teams to "publish" their contributions to our
> internal binary repository. But, that's a lot of people (say 50 or
>
>
> so),
>
>
> so
> I don't want to have to maintain their Gradle installations. If I
>
>
> could
>
>
> just put Gradlew (and a simple init script) on their machines the first
> time
> and be able to push stuff to the repo to "update" them on the fly it
>
>
> would
>
>
> simply maintenance.
>
> All this makes me wonder if gradlew could be changed to use a script
> rather
> than a properties file. Then I could put logic into it to do things
>
>
> like
>
>
> get more data from the repository and use that data to find the version
>
>
> of
>
>
> Gradle to extract. Which goes towards Gradle being a script execution
> engine with support for automatically downloading and using plugins
>
>
> (think
>
>
> Ruby gems). The "Gradle install" becomes 20 or 30 KB, and everything
>
>
> else
>
>
> gets downloaded on demand. Anyway, just something to think about.
>
> Sorry Narco, not trying to hijack your thread. I'll shut up now. :)
>
>
> --
> John Murph
> Automated Logic Research Team
>
>
>
>
> --
> View this message in
> context:http://old.nabble.com/Using-ant.p4sync-task-from-gradle-0.8-tp26829605p26886219.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
>
>
>
>
> --
> Adam Murdoch
> Gradle Developerhttp://www.gradle.org
>
>