From what I can tell... that seems to have the same effect.
If my before method prints out '[BEFORE]' and my after method prints
out '[AFTER]' then I get the following trace when I do a clean, build,
and package:
** Invoke proj:release:filter (first_time)
** Execute proj:release:filter
[BEFORE]
** Invoke /Users/myuser/source/trunk/release/target/mypackage.zip
(first_time)
.
. (a bunch of 'invoke' statements are here)
.
** Execute /Users/myuser/source/trunk/release/target/mypackage.zip
[AFTER]
Adding mypackage/one/myjar.jar
Adding mypackage/two/file_1.txt
Adding mypackage/two/file_2.txt
Adding mypackage/two/file_3.txt
.
. (a bunch of 'Adding' statements are here)
.
** Execute proj:release:package
** Invoke proj:release:check (first_time)
** Execute proj:release:check
.
. (Buildr continues on...)
.
The adding of my files to the package is still happening after my
'after' method.
Is this a bug maybe? I'm running Buildr 1.3.3. Is it different somehow
when trying this from within a subproject? (In my code I'm defining/
running all of this from within the 'release' sub project as opposed
to in a function or task).
Thanks for your quick response...
Regards,
Andrew
On May 18, 2009, at 4:53 PM, Alex Boisvert wrote:
Hi Andrew,
To run something before another task, you add a dependency, such as:
task 'before' do
run_BEFORE_packaging()
end
task 'package' => 'before'
and to do something after, you can use enhance (as you did) but
you'll want
to use 'tap' to configure the package(:zip) task like this:
package(:zip, :file=>_('target/mypackage.zip')).tap do |zip|
zip.path('mydeploydir/one').include
project('proj:myjar').package(:jar)
zip.path('mydeploydir/two').include 'mytextfiles/*.txt'
zip.path('mydeploydir/three').include 'myotherfiles/fromthisdir/
*.pdf'
zip.enhance do
run_AFTER_packaging()
end
end
alex
package(:zip, :file=>_('target/mypackage.zip')).enhance do |zip,
file|
run_BEFORE_packaging()
zip.path('mydeploydir/one').include
project('proj:myjar').package(:jar)
zip.path('mydeploydir/two').include 'mytextfiles/*.txt'
zip.path('mydeploydir/three').include
'myotherfiles/fromthisdir/*.pdf'
run_AFTER_packaging()
end
On Mon, May 18, 2009 at 3:38 PM, Andrew Moore <rp.andrew.mo...@gmail.com
>wrote:
Hi, I'm struggling to understand how I can run some ruby code after I
package
a zip file.
Here is a paired down version of my sub-project definition:
def 'release' do
package(:zip, :file=>_('target/mypackage.zip')).enhance do |zip,
file|
run_BEFORE_packaging()
zip.path('mydeploydir/one').include
project('proj:myjar').package(:jar)
zip.path('mydeploydir/two').include 'mytextfiles/*.txt'
zip.path('mydeploydir/three').include
'myotherfiles/fromthisdir/*.pdf'
run_AFTER_packaging()
end
end
I'm not understanding how to invoke my 'run_AFTER_packaging' method
after
all my various files are included in my zip. My
'run_BEFORE_packaging'
method runs, followed by my 'run_AFTER_packaging' method, which is
then
followed by the actual execution of the package task... (in which
all the
various files get added to the zip).
I'm not very familiar with Ruby or Rake... and I've tried searching
through
all the Buildr and Rake docs and tutorials I can find. I'm assuming
there
is
some sort of basic concept I'm not grasping, the docs and tutorials
gloss
over something basic or the way of doing this isn't intuitive enough.
Any help in showing me what to do to accomplish this, as well as
enlightening me on what concept I'm missing is much appreciated.
Regards,
Andrew
--
View this message in context:
http://n2.nabble.com/Running-code-after-a-package-task-has-completed-tp2936195p2936195.html
Sent from the Apache Buildr - User mailing list archive at
Nabble.com.