I got it working with the following code:
task(name+'_war').fileSet(dir: new File(projectDir, 'Web Content')){
include('**/*')
exclude('WEB-INF/**')
}
task(name+'_war').webInfFileSets = [new FileSet(dir: new File(projectDir,
'Web Content/WEB-INF'), excludes: new LinkedHashSet(['lib/*.jar']))]
It seems a little bizarre but it does what I want, and then I just used ant
to copy over the correct manifest file. Is there a better way to point
gradle at an existing manifest to use? This is useful for projects that are
moving over to gradle when I don't want to rewrite the classpath attribute.
Jerod
hdockter wrote:
>
> Hi Jerod,
>
> On Jul 4, 2008, at 5:21 PM, Hans Dockter wrote:
>
>> I don't understand why this does not work at, as you describe. I
>> have attached a sample war project (gradlep.zip) which works for me
>> with 0.2.
>>
>> It has the layout:
>>
>> src/main/webapp
>> src/main/content
>> src/additionalWebInf
>>
>> The content of webapp is automatically added to the war. The
>> content of 'content' is added as a fileset. The content of
>> additionalWebInf is added as a webinf fileset. Everythings works
>> except one bug. The web.xml from webapp is not added. This is
>> strange as we even have an integration test for this. I have filed
>> a Jira: http://jira.codehaus.org/browse/GRADLE-139
>
> I was fortunately wrong. There is no bug in Gradle but the error lies
> in the build script. See below:
>
>>
>> But this bug is not a big problem. You can specify the web.xml
>> directly. Here is the build file.
>>
>> import org.gradle.api.tasks.util.FileSet
>>
>> group = 'gradle'
>> version = '1.0'
>> usePlugin('war')
>> targetCompatibility = '1.5'
>> sourceCompatibility = '1.5'
>>
>> gradlep_war {
>> fileSet(dir: file('src/main/content'))
>> webInfFileSets = [new FileSet(dir: new File('src/
>> additionalWebInf'))]
>> webXml = file('src/main/webapp/WEB-INF/web.xml')
>> }
>
> We overwrite the default webInfFileSet here: The correct version is:
>
> gradlep_war {
> fileSet(dir: file('src/main/content'))
> webInfFileSets = webInfFileSets + [new FileSet(dir: file('src/
> additionalWebInf'))]
> }
>
> Than everything is fine. Of course this points out that we need a
> webInfFileSet method as described above.
>
> If any of your code is not working as expected please send me a test
> case for reproducing this.
>
> - Hans
>
> --
> Hans Dockter
> Gradle Project lead
> http://www.gradle.org
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
> http://xircles.codehaus.org/manage_email
>
>
>
>
--
View this message in context:
http://www.nabble.com/Re%3A-war-woes-tp18258312p18323941.html
Sent from the gradle-user mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email