我正在尝试在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
}
异常(exception)是:
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 JAR文件代替使用Tomcat的bin
目录中的org.apache.jasper.JspC
。如果您的JSP编译缺少任何库,则可以轻松地将它们添加到配置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")
}