I'm just new to Gradle, and I have a small problem with it. I'm trying to build two projects (called 'infrastructure' and 'domain'), where domain has some imports from infrastructure.
When I try to build both projects, Gradle can't compile my domain project, because he can't find a package from infrastructure.
This is my build.gradle:
subprojects{
apply plugin: 'java'
springversion = '3.0.4.RELEASE'
hibernateversion = '3.4.0.GA'
jsfversion = '2.0.3'
projectid = 'com.companyName.projectName'
projectversion = '1.0.0-SNAPSHOT'
repositories {
mavenRepo urls: 'file:///C:/companyName/m2repo'
mavenCentral()
}
dependencies {
compile group: 'commons-configuration', name: 'commons-configuration', version: '1.6'
compile group: 'sample.plugin', name: 'hsqldb-maven-plugin', version: '1.0-SNAPSHOT'
testCompile group: 'junit', name: 'junit', version: '4.8.2'
testCompile group: 'org.mockito', name: 'mockito-core', version: '1.8.0'
testCompile group: 'org.springframework', name: 'spring-test', version: springversion
compile group: 'org.springframework', name: 'spring-context', version: springversion
compile group: 'org.springframework', name: 'spring-orm', version: springversion
compile group: 'org.springframework', name: 'spring-web', version: springversion
compile group: 'org.hibernate', name: 'hibernate-annotations', version: hibernateversion
compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: hibernateversion
compile group: 'org.hibernate', name: 'ejb3-persistence', version: '1.0.2.GA'
compile group: 'javax.enterprise', name: 'cdi-api', version: '1.0-CR1'
compile group: 'com.sun.faces', name: 'jsf-api', version: jsfversion
compile group: 'commons-lang', name: 'commons-lang', version: '2.5'
runtime group: 'org.slf4j', name: 'slf4j-api', version: '1.5.6'
runtime group: 'org.slf4j', name: 'slf4j-jdk14', version: '1.5.6'
runtime group: 'org.hsqldb', name: 'hsqldb', version: '1.8.0.10'
runtime group: 'commons-dbcp', name: 'commons-dbcp', version: '1.2.2'
runtime group: 'org.aspectj', name: 'aspectjweaver', version: '1.6.2'
}
}
project (':infrastructure'){
task intTestJar(type: Jar) {
from sourceSets.main.classes
from sourceSets.test.classes
}
}
project(':domain'){
compileJava.dependsOn (':infrastructure:intTestJar')
}
In my settings.gradle, I've declared this:
include 'infrastructure', 'domain'
Both projects should be built to a .jar file.
When try to build the projects, this error is shown when he is running doma开发者_如何学Pythonin:compileTestJava
package com.companyName.projectName.test does not exist
This package refers to my infrastructure project. In eclipse it works, but I can't build it with gradle.
Any help would be appreciated.
Regards,
Walle
This did the trick:
subprojects{
apply plugin: 'java'
apply plugin: 'eclipse'
springversion = '3.0.4.RELEASE'
hibernateversion = '3.4.0.GA'
jsfversion = '2.0.3'
projectid = 'com.companyName.projectName'
projectversion = '1.0.0-SNAPSHOT'
repositories {
mavenRepo urls: 'file:///C:/companyName/m2repo'
mavenCentral()
}
dependencies {
compile group: 'commons-configuration', name: 'commons-configuration', version: '1.6'
compile group: 'sample.plugin', name: 'hsqldb-maven-plugin', version: '1.0-SNAPSHOT'
testCompile group: 'junit', name: 'junit', version: '4.8.2'
testCompile group: 'org.mockito', name: 'mockito-core', version: '1.8.0'
testCompile group: 'org.springframework', name: 'spring-test', version: springversion
compile group: projectid, name: 'infrastructure', version: projectversion
compile group: projectid, name: 'domain', version: projectversion
compile group: 'org.springframework', name: 'spring-context', version: springversion
compile group: 'org.springframework', name: 'spring-orm', version: springversion
compile group: 'org.springframework', name: 'spring-web', version: springversion
compile group: 'org.hibernate', name: 'hibernate-annotations', version: hibernateversion
compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: hibernateversion
compile group: 'org.hibernate', name: 'ejb3-persistence', version: '1.0.2.GA'
compile group: 'javax.enterprise', name: 'cdi-api', version: '1.0-CR1'
compile group: 'com.sun.faces', name: 'jsf-api', version: jsfversion
compile group: 'commons-lang', name: 'commons-lang', version: '2.5'
runtime group: 'org.slf4j', name: 'slf4j-api', version: '1.5.6'
runtime group: 'org.slf4j', name: 'slf4j-jdk14', version: '1.5.6'
runtime group: 'org.hsqldb', name: 'hsqldb', version: '1.8.0.10'
runtime group: 'commons-dbcp', name: 'commons-dbcp', version: '1.2.2'
runtime group: 'org.aspectj', name: 'aspectjweaver', version: '1.6.2'
}
test{
maxParallelForks=2
}
}
project(':infrastructure'){
task infrastructureTestJar(type: Jar) {
from sourceSets.main.classes
from sourceSets.test.classes
}
infrastructureTestJar.dependsOn(jar)
}
project(':domain'){
compileJava.dependsOn(':infrastructure:build')
dependencies{
compile files('../infrastructure/build/libs/infrastructure.jar')
}
task domainTestJar(type: Jar) {
from sourceSets.main.classes
from sourceSets.test.classes
}
domainTestJar.dependsOn(jar)
}
精彩评论