使用 gradle build 运行 tomcat jasper 任务(jspc) [英] Running tomcat jasper task (jspc) with gradle build
问题描述
我正在尝试在 gradle 中使用 jspc 编译我们的 jsp 文件,但出现异常.
I'm trying to compile our jsp files using jspc within gradle but am getting an exception.
这是相关的gradle部分
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
和 jspc.xml 蚂蚁文件
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>
存储库部分:
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
}
例外是:
原因:file:myfile.jsp(1,1) 绝对uri:http://java.sun.com/jsp/jstl/core 无法在 web.xml 或使用此应用程序部署的 jar 文件中解析
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
有什么想法吗?
推荐答案
您可以使用 Tomcat JAR 文件,而不是使用 Tomcat 的 bin
目录中的 catalina-tasks.xml
而是包含类 org.apache.jasper.JspC
.如果您的 JSP 编译缺少任何库,您可以轻松地将它们添加到配置 jasper
.
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")
}
这篇关于使用 gradle build 运行 tomcat jasper 任务(jspc)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!