The default behavior of the War plugin is to copy the content of src/main/webapp to the root of the archive. Your webapp folder may of course contain a WEB-INF sub-directory, which again may contain a web.xml file. Your compiled classes are compiled to WEB-INF/classes. All the dependencies of the runtime1 configuration are copied to WEB-INF/lib. The War plugin add two new dependency configurations: providedCompile and providedRuntime. Those new configurations have the same scope as the respective compile and runtime configurations. Except that they are not added to the war-archive. It is important to note that those provided configurations work transitively. Let’s say you add commons-httpclient:commons-httpclient:3.0 to any of the provided configurations. This dependency has a dependency on commons-codec. This means neither httpclient nor commons-codec is added to your war, even if commons-code were an explicit dependency of your compile configuration. If you don’t want this transitive behavior, simply declare your provided dependencies like commons-httpclient:commons-httpclient:3.0@jar.
Here an example with the most important customization options:
Of course one can configure the different file-sets with a closure to define excludes and includes.
If you want to enable the generation of the default jar archive additional to the war archive just type:
org.gradle.api.tasks.ide.eclipse.EclipseWtp has a default instance with the name eclipseWtp. It generates a .settings/org.eclipse.wst.common.component file.