Running tomcat jasper task (jspc) with gradle build
I'm trying to compile our jsp files using jspc within gradle but am getting an exception.
Here is the pertinent gradle section
//tomcatHome is defined in gradle.properties
ant.tomcatHome = "${tomcatHome}"
ant.webAppDir = "${webAppDir}"
ant.importBuild 'jspc.xml'
test.dependsOn jspc
And the jspc.xml ant file
<?xml version="1.0"?>
<project name="jspc" basedir="." default="jspc">
<!-- Import tasks from Tomcat -->
<import file="${tomcatHome}/bin/catalina-tasks.xml" />
<target name="jspc">
<jasper validateXml="false" uriroot="${webAppDir}" />
</target>
</project>
The repositories section:
repositories {
mavenRepo urls: 'http://repository.jboss.org/nexus/content/groups/public-jboss'
mavenRepo urls: 'http://oss.sonatype.org/content/repositories/sourceforge-releases'
mavenRepo urls: 'http://google-gson.googlecode.com/svn/mavenrepo'
mavenCentral()
}
The dependencies section:
dependencies {
springVersion = '3.0.4.RELEASE'
securityVersion = '3.0.5.RELEASE'
//Compile time local dependencies
compile fileTree(dir: 'staticLib', include: '*.jar')
//Compile time but not included dependencies
providedCompile group: 'javax.servlet', name: 'servlet-api', version:'2.5'
providedCompile group: 'javax.servlet', name: 'jstl', version: '1.1.2'
providedCompile group: 'taglibs', name: 'standard', version: '1.1.2'
//Compile time remote dependencies
compile group: 'com.google.code.gson', name:'gson', version: '1.7.1'
compile group: 'com.google.visualization', name: 'visualization-datasource', version: '1.0.2'
compile group: 'com.ibm.icu', name:'icu4j', version: '4.6.1'
compile group: 'commons-codec', name: 'commons-codec', version: '1.4'
compile group: 'commons-collections', name: 'commons-collections', version: '3.2.1'
compile group: 'commons-dbcp', name: 'commons-dbcp', version: '1.4'
compile group: 'commons-io', name: 'commons-io', version: '1.4'
compile group: 'commons-lang', name: 'commons-lang', version: '2.6'
compile group: 'commons-logging', name: 'commons-logging', version: '1.1.1'
compile group: 'commons-pool', name: 'commons-pool', version: '1.5.5'
compile group: 'javax.inject', name: 'javax.inject', version: '1'
compile group: 'javax.servlet', name: 'jstl', version: '1.2'
compile group: 'joda-time', name: 'joda-time', version: '1.6.2'
compile group: 'log4j', name: 'log4j', version: '1.2.15'
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.15'
compile group: 'net.sf.ehcache', name: 'ehcache-core', version: '2.4.0'
compile group: 'net.sf.ofx4j', name: 'ofx4j', version: '1.4'
compile group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version: '1.7.2'
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.2.Final'
compile group: 'org.hibernate', name: 'hibernate-validator', version: '4.1.0.Final'
compile group: 'org.ostermiller', name: 'utils', version: '1.07.00'
compile group: 'org.springframework', name: 'spring-aop', version: springVersion
compile group: 'org.springframework', name: 'spring-asm', version: springVersion
compile group: 'org.springframework', name: 'spring-aspects', version: springVersion
compile group: 'org.springframework', name: 'spring-beans', version: springVersion
compile group: 'org.springframework', name: 'spring-context', version: springVersion
compile group: 'org.springframework', name: 'spring-core', version: springVersion
compile group: 'org.springframework', name: 'spring-expression', version: springVersion
compile group: 'org.springframework', name: 'spring-instrument', version: springVersion
compile group: 'org.springframework', name: 'spring-jdbc', version: springVersion
compile group: 'org.springframework', name: 'spring-jms', version: springVersion
compile group: 'org.springframework', name: 'spring-orm', version: springVersion
compile group: 'org.springframework', name: 'spring-oxm', version: springVersion
compile group: 'org.springframework', name: 'spring-tx', version: springVersion
compile group: 'org.springframework', name: 'spring-web', version: springVersion
compile group: 'org.springframework', name: 'spring-webmvc', version: springVersion
compile group: 'org.springframework.security', name: 'spring-security-acl', version: securityVersion
compile group: 'org.springframework.security', name: 'spring-security-aspects', version: securityVersion
compile group: 'org.springframework.security', name: 'spring-security-cas-client', version: securityVersion
compile group: 'org.springframework.security', name: 'spring-security-config', version: securityVersion
compile group: 'org.springframework.security', name: 'spring-security-core', version: securityVersion
compile group: 'org.springframework.security', name: 'spring-security-ldap', version: securityVersion
compile group: 'org.springframework.security', name: 'spring-security-taglibs', version: securityVersion
compile group: 'org.springframework.security', name: 'spring-security-web', version: securityVersion
compile group: 'uk.com.robust-it', name: 'cloning', version: '1.7.4'
//Runtime dependencies
runtime group: 'commons-fileupload', name: 'commons-fileupload', version: '1.2.2'
runtime group: 'javassist', name: 'javassist', version: '3.9.0.GA'
runtime group: 'javax.mail', name: 'mail', version: '1.4'
runtime group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version: '1.7.4'
runtime group: 'org.codehaus.jackson', name: 'jackson-core-asl', version: '1.7.4'
runtime group: 'org.slf4j', name: 'slf4j-api', version: '1.6.1'
runtime group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.6.1'
//Test dependencies
testCompile group: 'cglib', name: 'cglib-nodep', version: '2.2'
testCompile group: 'junit', name: 'junit', version: '4.8.2'
testCompile group: 'org.mockito', name: 'mockito-all', version: '1.8.5'
testCompile group: 'org.springframework', name: 'spring-test', version: springVersion
}
The exception is:
Cause: file:myfile.jsp(1,1) The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar fil开发者_开发问答es deployed with this application
Any ideas?
Instead of using catalina-tasks.xml
from Tomcat's bin
directory you can use the Tomcat JAR file that includes the class org.apache.jasper.JspC
instead. If there are any libraries missing for your JSP compilation you can easily add them to the configuration jasper
.
configurations {
jasper
}
repositories {
mavenCentral()
}
dependencies {
jasper 'org.apache.tomcat:jasper:6.0.33',
'javax.servlet:jstl:1.1.2',
'taglibs:standard:1.1.2'
}
test.doLast {
ant.taskdef(classname: 'org.apache.jasper.JspC', name: 'jasper', classpath: configurations.jasper.asPath)
ant.jasper(validateXml: false, uriRoot: webAppDir, outputDir: "$buildDir/jspc")
}
精彩评论