One neat thing to do on the mac, that is on a related note, would be to
support Growl, as Buildr does. It's very nice to have a window popup that
says your <couple of minutes lasting> build failed, while you're surfing the
web. Growl has a Java API (don't know how good it is), and a commandline
interface. Growl is Mac only, but that shouldn't be too much of an issue,
other platforms will have similar means of communication.

Cheers,
Daniel

On Tue, May 26, 2009 at 2:31 AM, Hans Dockter <[email protected]> wrote:

>
> On May 25, 2009, at 7:32 PM, Jason Porter wrote:
>
>  Awesome.  I guess the proper way to do this then would be to fork the
>> project on GitHub?  Also are there problems with building on JDK6 (I'm
>> on a Mac, BTW)?  I'm running into heap space issues and tried to
>> increase the memory via the options in the build.gradle and the
>> gradlew in the root directory, but it doesn't look like it's being
>> accepted.  I could try building in IntelliJ, but haven't yet.
>>
>
> We have to solve the heap space issues. I guess you have run into them
> while running the unit tests?
>
> On the other hand, you don't even need to fork Gradle.
>
> What you could do for development is the following. Set up a new Gradle
> project. This means:
>
> myProject
> - build.gradle
> - buildSrc/src/main/groovy
>
> You can add all your Java/Groovy classes for writing the task into the
> source directory: buildSrc/src/main/groovy
>
> You can use the build.gradle script for testing your stuff. What happens
> is, that when you trigger a build the buildSrc code is automatically
> compiled and available to the build script classpath. So in your build
> script you can do:
>
> task myAnnouncement (type: <fullyQualifiedNameOfYourTask) {
>    <configuration>
> }
>
> Then you can execute:
>
> gradle myAnnouncement
>
> The compiled buildSrc result is cached and invalidated if the source is
> changing. In the case you run into issues with stale caches you can always
> do: gradle -C rebuild myAnnouncement
>
> Your custom task should probably extend the DefaultTask. Have a look in the
> Gradle source for examples.
>
> - Hans
>
>
>
>>
>> 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: keyserver.net, pgp.mit.edu
>>
>>
>>
>> On Mon, May 25, 2009 at 07:50, Hans Dockter <[email protected]> wrote:
>>
>>>
>>> On May 23, 2009, at 8:37 AM, Jason Porter wrote:
>>>
>>>  In the release announcement of 0.6.0 the idea of a Twitter plugin was
>>>> introduced to post when successful milestones happen (like the
>>>> completion of 0.6.0).  I'm up for the challenge of creating one, but I
>>>> think a general task / plugin (I'm not sure which would be best) that
>>>> would let you do announcements would be more beneficial.
>>>>
>>>
>>> This is a very cool idea. The Gradle build itself will be the first user
>>> of
>>> such a task.
>>>
>>>
>>>>
>>>> I imagine a module (for lack of knowing which is better) that would be
>>>> able to take a type argument or configuration and in the backend it
>>>> would set that up for you and use the closure for configuration stuff.
>>>> So I'm thinking you could do things like RSS, Twitter, or email just
>>>> to name a few.  Then in your configuration closure you'd specify the
>>>> needed information, SMTP, twitter credentials, message, etc.
>>>>
>>>> My first question: Would a task or a plugin be better for this?
>>>>
>>>
>>> On first sight I would say a task might be a good enough. For example our
>>> test task is also part of a framework where you can either choose JUnit
>>> or
>>> TestNG.
>>>
>>> How things can look like at the end:
>>>
>>> There is a task jar (with as many helper and framework classes you like).
>>> This jar would be available from a repository.
>>>
>>> In the settings.gradle you would say:
>>>
>>> mavenCentral()
>>> dependencies("com.jason:announce-task:1.0")
>>>
>>> In the build.gradle you can do:
>>>
>>> task twitter(type: 'com.jason.gradle.Twitter') {
>>>  use('twitter')
>>>  ....
>>> }
>>>
>>> The stuff in the closure is applied against the API of your Announce
>>> task.
>>>
>>>
>>>> Second:  Is a general framework like this with different
>>>> implementations possible in Gradle?
>>>>
>>>
>>> Yes.
>>>
>>> - Hans
>>>
>>> --
>>> Hans Dockter
>>> Gradle Project Manager
>>> http://www.gradle.org
>>>
>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>
>>
>>
> --
> Hans Dockter
> Gradle Project Manager
> http://www.gradle.org
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>   http://xircles.codehaus.org/manage_email
>
>
>

Reply via email to