On Jul 3, 2008, at 11:44 AM, Dominick More wrote:
Thanks Jerod Lass for the tip about accessing the war task!!! At
least I was
able to figure out how to include the public_html files. This sort
of thing
should definitely be documented more clearly.
I agree. We spend a lot of resources into our documentation though.
But as a Gradle developer knowing the internals one is partially
blind to what needs a better explanation. We depend on user feedback
like yours for this.
*** updated contents of ./csl/wars/build.gradle
dependsOnChildren()
You can leave dependsOnChildren out as well.
- Hans
subprojects {
usePlugin('war')
sourceCompatibility = project(':').getProperty
("sourceCompatibility")
As said in the earlier email:
sourceCompatibility = project(':').sourceCompatibility
might be nicer to read.
targetCompatibility = project(':').getProperty
("targetCompatibility")
compile {
options.deprecation =
project(':').getProperty("compile.options.deprecation")
options.warnings =
project(':').getProperty("compile.options.warnings")
}
libs {
War war = project.task( project.name + '_war')
The project property is appended by default. So you can leave it out.
War war = task( project.name + '_war')
war.fileSet( dir: new File( project.srcRoot, 'main/
public_html' )) {
exclude( 'WEB-INF' )
include( '**/*' )
}
}
}
I'm curios. Why don't you put the content of public_html in the src/
webapp folder?
- Hans
Dominick More wrote:
While evaluating Gradle I've run into a dead end with the usage of
the war
plugin. The "usePlugin('war')" directive is in the file
./csl/wars/build.gradle but the war file source is actually in
./csl/wars/mywarproject and dependencies are defined in
./csl/wars/mywarproject/build.gradle
Two things stump me with the war file:
1) Files not within the war file ./WEB-INF directory are not
included in
the war file. Typically our wars contain other content in the
archive root
folder (i.e. jsps, images, etc.). The problem is the war file
gernerated
out of gradle just contains the WEB-INF content. I was trying to
figure
out how to append filesets to the war object within the build.gradle
script but couldn't manage.
The snippet:
subprojects {
usePlugin('war')
dists {
war() {
fileSet(dir: 'src/public_html') {
excludes('WEB-INF')
includes('**/*')
}
}
}
}
results in the error message:
Exception: org.gradle.api.GradleScriptException:
org.gradle.api.InvalidUserDataException: A task with this name
already
exists!
The documentation mentions examples such as
"myZipTask.files('path_to_file1', 'path_to_file2')" but fails to
mention
how to get a reference to myZipTask.
How do I access the 'war' task at runtime so that I can manipulate
the
archive content?
2) The war build.gradle file contains the dependency "compile
project(':csl:jars:myjarproject')" which is automatically added to
the war
lib directory. While this is sometimes desired we don't want to
blow up
our distribution so we put the project jars in the shared
classpath. How
do I prevent gradle from added "dependency" jars to the war lib
folder?
|-csl
| |
| |-jars
| | |
| | |-myjarproject
| | | |
| | | |-src
| | | | |
| | | | |-main
| | | | | |
| | | | | |-java
| | | | | |
| | | | | |-resources
| | | | |
| | | | |-test
| | | | |
| | | | |-java
| | | | |
| | | | |-resources
| | | |
| | | |-build.gradle
| | |
| | |-build.gradle
| |
| |-wars
| | |
| | |-mywarproject
| | | |
| | | |-src
| | | | |
| | | | |-main
| | | | | |
| | | | | |-java
| | | | | |
| | | | | |-resources
| | | | | |
| | | | | |-webapp
| | | | |
| | | | |-test
| | | | |
| | | | |-java
| | | | |
| | | | |-resources
| | | |
| | | |-build.gradle
| | |
| | |-build.gradle
| |
| |-build.gradle
|
|-local_maven_repo
|
|-build.gradle
|
|-settings.gradle
*** contents of ./setting.gradle
include 'csl', 'csl:jars', 'csl:wars', 'csl:jars',
'csl:jars:myjarproject', 'csl:wars:mywarproject'
*** contents of ./build.gradle
childrenDependOnMe()
dependsOnChildren()
private static final boolean javacDeprecationFlag = false
private static final boolean javacWarningFlag = false
private static final String javacSourceCompatibility = "1.4"
private static final String javacTargetCompatibility = "1.4"
private static final String axnArchivePrefix = "axn"
private static final String axnGroup =
"com.audatex.axn"
private static final String axnVersion = "6.2"
allprojects {
group = axnGroup
version = axnVersion
archivesBaseName = axnArchivePrefix + project.archivesBaseName
setProperty("sourceCompatibility", javacSourceCompatibility)
setProperty("targetCompatibility", javacTargetCompatibility)
setProperty("compile.options.deprecation", javacDeprecationFlag)
setProperty("compile.options.warnings", javacWarningFlag)
dependencies {
classpathResolvers.add([ name: 'local_maven_repo', url: new File(
rootDir, 'local_maven_repo' ).toURL().toString()])
classpathResolvers.add([ name:
DependencyManager.DEFAULT_MAVEN_REPO_NAME, url:
DependencyManager.MAVEN_REPO_URL ])
}
}
*** contents of ./csl/build.gradle
childrenDependOnMe()
dependsOnChildren()
subprojects {}
*** contents of ./csl/jars/build.gradle
childrenDependOnMe()
dependsOnChildren()
subprojects {
usePlugin('java')
sourceCompatibility = project(':').getProperty
("sourceCompatibility")
targetCompatibility = project(':').getProperty
("targetCompatibility")
compile {
options.deprecation =
project(':').getProperty("compile.options.deprecation")
options.warnings =
project(':').getProperty("compile.options.warnings")
}
}
*** contents of ./csl/wars/build.gradle
childrenDependOnMe()
dependsOnChildren()
subprojects {
usePlugin('war')
sourceCompatibility = project(':').getProperty
("sourceCompatibility")
targetCompatibility = project(':').getProperty
("targetCompatibility")
compile {
options.deprecation =
project(':').getProperty("compile.options.deprecation")
options.warnings =
project(':').getProperty("compile.options.warnings")
}
dists {
war() {
fileSet(dir: 'src/public_html') {
excludes('WEB-INF')
includes('**/*')
}
}
}
}
*** contents of ./csl/jars/myjarproject/build.gradle
type = 'jar'
dependencies {
compile "junit:junit:3.8.2"
}
*** contents of ./csl/wars/mywarproject/build.gradle
type = 'war'
dependencies {
compile project(':csl:jars:myjarproject')
compile "javax.servlet:servlet-api:2.4"
}
--
View this message in context: http://www.nabble.com/War-Plugin-
problems-tp18232294p18255648.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
--
Hans Dockter
Gradle Project lead
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email