我想为许多项目重用某些过滤器,所以我想提取它并使用一个jar将其添加到任何Web App.
对于构建我正在使用Gradle 1.3和以下build.gradle文件:
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()
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我需要servlet api成功编译此过滤器,因此我想将其添加为maven提供的依赖项.
无论如何,运行后gradle build我得到以下错误:
无法在根项目'hibernate-conversation-context'上找到方法providedCompile()的参数[{group = javax.servlet,name = javax.servlet-api,version = 3. +}].
现在,我知道在没有WAR插件的情况下我不能使用providedCompile,但我需要将项目作为一个简单的JAR.还有另一种方法吗?
Hie*_*mus 51
这个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
Run Code Online (Sandbox Code Playgroud)
这会添加配置,并将所有依赖项放在主类和测试类的编译类路径中.您还需要将其添加到runtimeClasspath,因为根据gradle DSL文档,它不包括编译类路径.
Dor*_*old 12
从Gradle 2.12开始,定义仅编译依赖项的问题最终通过新的"copmpileOnly"配置以简单而自然的方式解决:
dependencies {
compileOnly 'javax.servlet:servlet-api:2.5'
}
Run Code Online (Sandbox Code Playgroud)
我最近写了一篇博文,其中详细介绍了这种情况.它还向您展示了如何正确设置与Eclipse的集成.
http://blog.codeaholics.org/2012/emulating-mavens-provided-scope-in-gradle/
小智 5
有一种更简单的方法:
configurations {
provided
provided.extendsFrom(compile)
}
Run Code Online (Sandbox Code Playgroud)
然后你可以:
dependencies {
provided group: 'javax.servlet', name: 'javax.servlet-api', version:'3.+'
}
Run Code Online (Sandbox Code Playgroud)
您还希望在生成的Eclipse或Idea项目文件中包含提供的库:
idea.module.scopes.PROVIDED.plus += configurations.provided
eclipse.classpath.plusConfigurations += configurations.provided
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30918 次 |
| 最近记录: |