Here's what I do. I first build my EAR structure on disk, usually in target/xxx.ear. Then I use the jar task to create the EAR. This provides several benefits:
* I know exactly what is in my EAR
* I can choose to deploy the EAR as either an archive file, or as the exploded directory
* I don't have to unpack my ear to verify that its structure is correct
Take a look at the code examples for the war task in the ant manual. They include a zipfileset with a prefix specified (for your 'APP-INF/lib'). As I recall, WebLogic server uses or used APP-INF/lib.