开发者

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")
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜