我想为许多项目重用特定的过滤器,所以我想提取它,并使用一个单独的jar将它添加到任何Web应用程序中。
apply plugin: 'java'
dependencies {
compile group:'org.slf4j', name:'slf4j-api', version:'1.7.+'
testCompile group:'junit', name:'junit', version:'4.+'
compile group:'org.springframework', name:'spring-web', version:'3.+'
compile group:'org.slf4j', name:'slf4j-log4j12', version:'1.6.+'
compile group:'log4j', name:'log4j', version:'1.2.+'
providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version:'3.+'
}
repositories {
mavenCentral()
}
现在,我知道如果没有WAR插件,我就不能使用providedCompile,但我需要这个项目是一个简单的JAR。还有别的办法吗?
对于java
插件,没有这种现成的配置。但是,您可以自己构建它,如下所示:
configurations { providedCompile }
dependencies {
providedCompile "javax.servlet:javax.servlet-api:3.+"
}
sourceSets.main.compileClasspath += configurations.providedCompile
sourceSets.test.compileClasspath += configurations.providedCompile
sourceSets.test.runtimeClasspath += configurations.providedCompile
这将添加配置,并将所有依赖项放在主类和测试类的编译类路径上。您还需要将其添加到runtimeClasspath中,因为根据gradle DSL文档,其中不包括compile类路径。
使用tomcat 2.2.0构建grails 2.1.0应用程序时,在tomcat 7上部署时,在启动时会出现以下错误: 和 java.lang.noClassDeffounderror:org/apache/tomcat/perioadeventListener at java.lang.classloader.defineClass1(本机方法)at java.lang.classloader
War任务默认会把src/main/webapp的内容复制到归档目录的根目录.webapp文件夹下会包含一个WEB-INF子文件夹,里面可能会有一个web.xml文件.编译后的class文件会在WEB-INF/classes下,所有runtime[13]的依赖配置会被拷贝至WEB-INF/lib下. API文档中有更多关于War的信息. [13]runtime配置扩展了compile配置.
WAR插件扩展了Java插件,支持web应用组装成War文件.它默认禁用了Java插件JAR归档任务,并增加了一个默认的WAR归档任务。 25.1.使用 使用war插件需要在构建脚本下包括以下内容 例25.1.使用war插件 build.gradle apply plugin 'war' 25.2.任务 War插件会添加下列任务到项目. 表25.1.War插件-任务 任务名 依赖 类型 描述 wa
下面的例子中有一些重要的自定义选项 例25.2.定制War插件 build.gradle configuration{ moreLibs } respositories{ faltDir {dirs "lib"} mavenCentral() } dependencies{ compile module(":compile:1.0") { dependency ":
War插件会添加下列任务到项目. 表25.1.War插件-任务 任务名 依赖 类型 描述 war compile War 组装应用程序War文件 War插件由Java插件添加下列依赖任务. 表25.2.War插件-附加的依赖任务 任务名 依赖 assemble war 图25.1.War插件-任务 a655fa4be4421004591827ae70fee579703794dd
使用war插件需要在构建脚本下包括以下内容 例25.1.使用war插件 build.gradle apply plugin 'war' a655fa4be4421004591827ae70fee579703794dd