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 <m...@dockter.biz> 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