我正在尝试清理我的依赖项并消除一些我遇到的类集合。由于某种原因,我的排除不起作用。
这是我的剧本
description = 'Onus Pride Collective System'
buildscript {
repositories {
maven { url 'http://repo.springsource.org/plugins-release' }
}
dependencies {
classpath 'org.springframework.build.gradle:docbook-reference-plugin:0.2.2'
}
}
configurations.all {
exclude group: 'servlet', module: 'servlet-api', version: '2.5'
exclude group: 'ch.qos.logback'
exclude group: 'log4j', module: 'log4j', version:'1.2.17'
exclude group: 'org.springframework', module: 'spring-core', version: '3.2.3.RELEASE'
exclude group: 'org.springframework', module: 'spring-tx', version: '3.0.7.RELEASE'
}
configure(allprojects) {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
group = 'com.onuspride'
version = '0.0.1'
sourceSets.test.resources.srcDirs = ['src/test/resources', 'src/test/java']
test.systemProperty("java.awt.headless", "true")
ext {
akka = '2.2.3'
akkaSeries = '_2.10'
apacheLog4jVersion = '2.0-beta9'
aspectjVersion = '1.7.2'
cglibVersion = '2.2.2'
commonsCodecVersion = '1.5'
commonsDigesterVersion = '2.1'
commonsFileuploadVersion = '1.3'
commonsLang3Version = '3.1'
elApiVersion = '1.0'
fasterxmlJacksonVersion = '2.3.0'
flexJsonVersion = '2.1'
ginVersion = '2.0.0'
googleAPIClient = '1.17.0-rc'
googleAPIDrive = 'v2-rev110-1.17.0-rc'
googleAPIOauth2 = 'v2-rev59-1.17.0-rc'
googleJackson = '1.15.0-rc'
guavaVersion = '14.0.1'
guiceVersion = '3.0'
gwtpVersion = '1.0.3'
gwtqueryVersion = '1.3.2'
gwtsecurityVersion = '1.2.3'
gwtVersion = '2.5.1'
hamcrestDateVersion = '0.9.5'
hibernateValidator = '5.0.2.Final'
ioSpray = '1.2.0'
javaxServletVersion = '3.0.1'
jedisVersion = '2.1.0'
jettyVersion = '9.1.0.v20131115'
jodaTimeVersion = '1.6'
json4sVersion = '3.2.6'
jspApiVersion = '2.1'
jstlApiVersion = '1.2'
jukitoVersion = '1.1'
junitVersion = '4.11'
lmaxDistruptorVersion = '3.2.0'
neo4jVersion = '2.0.0'
persistenceApiVersion = '1.0'
scalaLangVersion = '2.10.2'
slf4jVersion = '1.7.5'
socialSigninTwitterVersion = '1.1.0-SNAPSHOT'
springDataNeo4jVersion = '2.3.3.RELEASE'
springDataRedis = '1.1.0.RELEASE'
springJsResourcesVerison = '2.3.2.RELEASE'
springJsVersion = '2.3.2.RELEASE'
springScalaVersion = '1.0.0.RC1'
springSecurityVersion = '3.2.0.RELEASE'
springSocialGoogleVersion = '1.0.0.M3'
springSocialVersion = '1.1.0.M4'
springVersion = '3.2.6.RELEASE'
tilesJspVersion = '2.2.2'
}
repositories {
mavenCentral()
mavenLocal()
maven { url "http://maven.springframework.org/release" }
maven { url "https://repo.springsource.org/milestone" }
//maven { url "http://maven.springframework.org/milestone" }
maven { url "http://gabiaxel.github.io/maven" }
maven { url "http://download.java.net/maven/2" }
}
}
configure(subprojects) { subproject ->
jar {
manifest.attributes['Implementation-Title'] = subproject.name
manifest.attributes['Implementation-Version'] = subproject.version
from("${rootProject.projectDir}/src/dist") {
include "license.txt"
include "notice.txt"
into "META-INF"
expand(copyright: new Date().format('yyyy'), version: project.version)
}
}
javadoc {
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.author = true
options.header = project.name
//options.overview = "${projectDir}/src/main/java/overview.html"
}
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allJava
}
task javadocJar(type: Jar) {
classifier = 'javadoc'
from javadoc
}
artifacts {
archives sourcesJar
archives javadocJar
}
}
project('inclusive') {
apply plugin: 'scala'
sourceCompatibility=1.7
targetCompatibility=1.7
description = 'Common library. This is used to tie the various systems together.'
dependencies {
compile "joda-time:joda-time:$jodaTimeVersion"
compile "org.scala-lang:scala-library:$scalaLangVersion"
//compile "com.fasterxml.jackson.core:jackson-annotations:$fasterxmlJacksonVersion"
//compile "org.apache.commons:commons-lang3:$commonsLang3Version"
//compile "org.springframework.social:spring-social-core:$springSocialVersion"
//compile "org.springframework.social:spring-social-security:$springSocialVersion"
}
}
project('wisdom') {
apply plugin: 'scala'
//apply plugin: 'war'
//apply plugin: 'jetty'
sourceCompatibility=1.7
targetCompatibility=1.7
description = 'Common library. This is used to tie the various systems together.'
test.systemProperty("java.awt.headless", "true")
dependencies {
compile project (':inclusive')
//compile "com.gwtplatform:gwtp-dispatch-client:$gwtpVersion"
//compile "com.gwtplatform:gwtp-dispatch-server-spring:$gwtpVersion"
//compile "commons-codec:commons-codec:$commonsCodecVersion"
//compile "commons-digester:commons-digester:$commonsDigesterVersion"
//compile "commons-fileupload:commons-fileupload:$commonsFileuploadVersion"
//compile "javax.el:el-api:$elApiVersion"
//compile "javax.persistence:persistence-api:$persistenceApiVersion"
//compile "javax.servlet.jsp.jstl:jstl-api:$jstlApiVersion"
//compile "javax.servlet.jsp:jsp-api:$jspApiVersion"
compile "joda-time:joda-time:$jodaTimeVersion"
//compile "net.sf.flexjson:flexjson:$flexJsonVersion"
//compile "org.apache.commons:commons-lang3:$commonsLang3Version"
//compile "org.apache.tiles:tiles-jsp:$tilesJspVersion"
//
//compile "org.hibernate:hibernate-validator:$hibernateValidator"
//compile "org.slf4j:jcl-over-slf4j:$slf4jVersion"
//compile "org.slf4j:slf4j-log4j12:$slf4jVersion"
//compile "org.springframework.security:spring-security-ldap:$springSecurityVersion"
//compile "org.springframework.security:spring-security-taglibs:$springSecurityVersion"
//compile "org.springframework.social:spring-social-config:$springSocialVersion"
//compile "org.springframework.social:spring-social-core:$springSocialVersion"
//compile "org.springframework.social:spring-social-facebook:$springSocialVersion"
//compile "org.springframework.social:spring-social-google:$springSocialGoogleVersion"
//compile "org.springframework.social:spring-social-security:$springSocialVersion"
//compile "org.springframework.social:spring-social-twitter:$springSocialVersion"
//compile "org.springframework.social:spring-social-web:$springSocialVersion"
//compile "org.springframework.webflow:spring-js-resources:$springJsVersion"
//compile "org.springframework:spring-aop:$springVersion"
//compile "org.springframework:spring-aspects:$springVersion"
//compile "org.springframework:spring-context:$springVersion"
//runtime "javax.xml.bind:jaxb-api:2.2.9"
//runtime "org.slf4j:slf4j-jdk14:1.7.5"
//compile "cglib:cglib:$cglibVersion"
//compile "com.fasterxml.jackson.core:jackson-core:$fasterxmlJacksonVersion"
//compile "com.fasterxml.jackson.core:jackson-databind:$fasterxmlJacksonVersion"
//compile "com.google.api-client:google-api-client:$googleAPIClient"
//compile "com.google.apis:google-api-services-drive:$googleAPIDrive"
//compile "com.google.apis:google-api-services-oauth2:$googleAPIOauth2"
//compile "com.google.http-client:google-http-client-jackson:$googleJackson"
//compile "com.jayway.jsonpath:json-path:0.8.1"
//compile "com.sun.jersey:jersey-core:1.9"
compile "com.typesafe.akka:akka-actor$akkaSeries:$akka"
compile "com.typesafe.akka:akka-slf4j$akkaSeries:$akka"
compile "io.spray:spray-can:$ioSpray"
compile "io.spray:spray-routing:$ioSpray"
//compile "io.spray:spray-servlet:1.2.0"
//compile "javax.servlet:javax.servlet-api:$javaxServletVersion"
compile "org.apache.logging.log4j:log4j-api:$apacheLog4jVersion"
compile "org.apache.logging.log4j:log4j-core:$apacheLog4jVersion"
compile "org.apache.logging.log4j:log4j-slf4j-impl:$apacheLog4jVersion"
compile "com.lmax:disruptor:$lmaxDistruptorVersion"
//compile "org.aspectj:aspectjrt:$aspectjVersion"
//compile "org.aspectj:aspectjweaver:$aspectjVersion"
//compile "org.eclipse.jetty:jetty-webapp:$jettyVersion"
//compile "org.eclipse.jetty:jetty-jmx:$jettyVersion"
compile "org.json4s:json4s-native_2.10:$json4sVersion"
compile "org.scala-lang:scala-library:$scalaLangVersion"
compile "org.springframework.data:spring-data-neo4j:$springDataNeo4jVersion"
compile "org.springframework.scala:spring-scala_2.10:$springScalaVersion"
//compile "org.springframework.data:spring-data-redis:$springDataRedis"
//compile "org.springframework:spring-core:$springVersion"
//compile "redis.clients:jedis:$jedisVersion"
//compile "uk.co.modular-it:hamcrest-date:$hamcrestDateVersion"
//compile group: 'org.neo4j', name: 'neo4j', version: "$neo4jVersion"
//compile group: 'org.neo4j.app', name: 'neo4j-server', version: "$neo4jVersion", classifier: 'static-web'
//testCompile "com.jayway.jsonpath:json-path-assert:0.8.1"
//testCompile "com.typesafe.akka:akka-testkit$akkaSeries:$akka"
//testCompile "io.spray:spray-testkit:$ioSpray"
//testCompile "junit:junit:$junitVersion"
//testCompile "org.mockito:mockito-all:1.9.5"
//testCompile "org.springframework:spring-test:$springVersion"
}
tasks.withType(ScalaCompile) {
scalaCompileOptions.useAnt = false
}
}
configure(rootProject) {
description = 'Spring Social'
apply plugin: 'docbook-reference'
reference {
ext.sourceDir = file('src/reference/docbook')
}
// don't publish the default jar for the root project
configurations.archives.artifacts.clear()
dependencies { // for integration tests
}
task api(type: Javadoc) {
group = 'Documentation'
description = 'Generates aggregated Javadoc API documentation.'
title = "${rootProject.description} ${version} API"
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.author = true
options.header = rootProject.description
options.overview = 'src/api/overview.html'
options.links(
'http://docs.jboss.org/jbossas/javadoc/4.0.5/connector'
)
source subprojects.collect { project ->
project.sourceSets.main.allJava
}
destinationDir = new File(buildDir, "api")
classpath = files(subprojects.collect { project ->
project.sourceSets.main.compileClasspath
})
maxMemory = '1024m'
}
task docsZip(type: Zip) {
group = 'Distribution'
classifier = 'docs'
description = "Builds -${classifier} archive containing api and reference " +
"for deployment at static.springframework.org/spring-social/docs."
from('src/dist') {
include 'changelog.txt'
}
from (api) {
into 'api'
}
from (reference) {
into 'reference'
}
}
task schemaZip(type: Zip) {
group = 'Distribution'
classifier = 'schema'
description = "Builds -${classifier} archive containing all " +
"XSDs for deployment at static.springframework.org/schema."
subprojects.each { subproject ->
def Properties schemas = new Properties();
subproject.sourceSets.main.resources.find {
it.path.endsWith('META-INF/spring.schemas')
}?.withInputStream { schemas.load(it) }
for (def key : schemas.keySet()) {
def shortName = key.replaceAll(/http.*schema.(.*).spring-.*/, '$1')
assert shortName != key
File xsdFile = subproject.sourceSets.main.resources.find {
it.path.endsWith(schemas.get(key))
}
assert xsdFile != null
into (shortName) {
from xsdFile.path
}
}
}
}
task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) {
group = 'Distribution'
classifier = 'dist'
description = "Builds -${classifier} archive, containing all jars and docs, " +
"suitable for community download page."
ext.baseDir = "${project.name}-${project.version}";
from('src/dist') {
include 'readme.txt'
include 'license.txt'
include 'notice.txt'
into "${baseDir}"
expand(copyright: new Date().format('yyyy'), version: project.version)
}
from(zipTree(docsZip.archivePath)) {
into "${baseDir}/docs"
}
from(zipTree(schemaZip.archivePath)) {
into "${baseDir}/schema"
}
subprojects.each { subproject ->
into ("${baseDir}/libs") {
from subproject.jar
if (subproject.tasks.findByPath('sourcesJar')) {
from subproject.sourcesJar
}
if (subproject.tasks.findByPath('javadocJar')) {
from subproject.javadocJar
}
}
}
}
artifacts {
archives docsZip
archives schemaZip
archives distZip
}
task wrapper(type: Wrapper) {
description = 'Generates gradlew[.bat] scripts'
gradleVersion = '1.4'
}
}
class Ajc extends DefaultTask {
Ajc() {
logging.captureStandardOutput(LogLevel.INFO)
}
@TaskAction
def compile() {
logger.info "Running ajc ..."
ant.taskdef(resource: "org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: project.configurations.ajtools.asPath)
ant.iajc(classpath: sourceSet.compileClasspath.asPath, fork: 'true', destDir: sourceSet.classesDir.absolutePath,
source: project.sourceCompatibility,
target: project.targetCompatibility,
aspectPath: aspectPath.asPath, sourceRootCopyFilter: '**/*.java', showWeaveInfo: 'true', Xlint: "ignore") {
sourceroots {
sourceSet.java.srcDirs.each {
pathelement(location: it.absolutePath)
}
}
}
}
}
奇怪的是它排除了servlet-api 2.5就好了。但它忽略了其他人。我仍然得到我的依赖项(从neo带来)和多个版本的spring的logback。我的剧本怎么了?
答案 0 :(得分:1)
这是一个多项目构建,但仅为根项目声明了排除项。与几乎所有其他构建信息一样,配置是按项目进行的。因此,必须为allprojects
,subprojects
或需要它们的特定项目(可能不是根项目)声明排除项。