我正在尝试在gradle中使用jspc来编译我们的jsp文件,但是却遇到了异常。
这是相关的gradle部分
//tomcatHome is defined in gradle.properties ant.tomcatHome = "${tomcatHome}" ant.webAppDir = "${webAppDir}" ant.importBuild 'jspc.xml' test.dependsOn jspc
和jspc.xml ant文件
<?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>
存储库部分:
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() }
依赖项部分:
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 }
例外是:
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 files deployed with this application
有任何想法吗?
而不是使用catalina- tasks.xml从Tomcat的bin目录中,您可以使用包括类Tomcat的JAR文件org.apache.jasper.JspC来代替。如果您的JSP编译缺少任何库,则可以轻松地将它们添加到配置中jasper。
catalina- tasks.xml
bin
org.apache.jasper.JspC
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") }