问题描述
||
我正在尝试在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\',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\',name: \'spring-aspects\',name: \'spring-beans\',name: \'spring-context\',name: \'spring-core\',name: \'spring-expression\',name: \'spring-instrument\',name: \'spring-jdbc\',name: \'spring-jms\',name: \'spring-orm\',name: \'spring-oxm\',name: \'spring-tx\',name: \'spring-web\',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\',name: \'spring-security-cas-client\',name: \'spring-security-config\',name: \'spring-security-core\',name: \'spring-security-ldap\',name: \'spring-security-taglibs\',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\',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
有任何想法吗?
解决方法
可以使用包含类
org.apache.jasper.JspC
的Tomcat JAR文件代替使用Tomcat \bin
目录中的catalina-tasks.xml
。如果您的JSP编译缺少任何库,则可以轻松地将它们添加到配置ѭ8中。
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\")
}