gradle-包括要testCompile的已编译类,以避免NoClassDefFoundError

gradle-包括要testCompile的已编译类,以避免NoClassDefFoundError,gradle,build.gradle,Gradle,Build.gradle,我试图包括编译类(来自project3)来运行junit测试 下面是一个简单的项目结构 project1 build.gradle project2 build.gradle project3 src/main/java/***.java src/test/java/***JunitTestClasses build.gradle - I am running this. 这是project3中的build.gradle apply plugin: 'java'

我试图包括编译类(来自project3)来运行junit测试

下面是一个简单的项目结构

project1
   build.gradle
project2
   build.gradle
project3
   src/main/java/***.java
   src/test/java/***JunitTestClasses
   build.gradle - I am running this.
这是project3中的build.gradle

apply plugin: 'java'
apply plugin: "jacoco"
apply plugin: 'maven'
apply plugin: 'com.github.jacobono.jaxb'
apply plugin: "io.spring.dependency-management"

sourceCompatibility = 1.8
targetCompatibility = 1.8


buildscript {
  repositories {
    maven 
    {
         // omitted.
    }
  }

  dependencies 
  {
    classpath 'com.github.jacobono:gradle-jaxb-plugin:' + GRADLE_JAXB_PLUGIN_VERSION
    classpath 'io.spring.gradle:dependency-management-plugin:' + GRADLE_DEP_MGMT_PLUGIN_VERSION
  }
}

dependencies 
{
    compile project(':project1')
    compile project(':project2')
    compile project(':project3')
    compile group: 'org.apache.ant', name: 'ant', version: ANT_VERSION
    jaxb group: 'com.sun.xml.bind', name: 'jaxb-xjc', version: JAXB_VERSION
    jaxb group: 'com.sun.xml.bind', name: 'jaxb-impl', version: JAXB_VERSION
    jaxb group: 'com.sun.xml.bind', name: 'jaxb-core', version: JAXB_VERSION
    xmlbeans 'org.apache.xmlbeans:xmlbeans:2.5.0'
    testCompile group: 'junit', name: 'junit', version: '4.+'
    runtime files('build/classes/main')
}


configurations {
  repobootstrap
  xmlbeans
}

sourceSets {
  generated {
    java {
      srcDir file("${buildDir}/generated")
    }
  }
  testGenerated {
    compileClasspath += sourceSets.main.runtimeClasspath
    java {
      srcDir file("${buildDir}/generated")
    }
  } 
  main {
    compileClasspath += sourceSets.generated.output
    runtimeClasspath += sourceSets.generated.output
  }

  test {
    compileClasspath += sourceSets.generated.output
    runtimeClasspath += sourceSets.generated.output
  }
}




test 
{
  systemProperties 'basedir': projectDir
  systemProperties 'testdir': "${projectDir}/src/test"
  systemProperties 'resourcedir': "${projectDir}/src/test/resources"
  systemProperties 'TARGET':  "${buildDir}/tmp"
  systemProperties 'tmp.dir':  "${buildDir}/tmp"
}
省略了一些从XSD生成类的任务

当我进行“gradle构建”时,它成功地从XML生成类并进行编译。但当junit测试运行时,它会对属于project3的类抛出“java.lang.NoClassDefFoundError”和“java.lang.ClassNotFoundException:schemaorg_apache_xmlbeans.system.sE2A73A83DA959459556520519D4CA82A.TypeSystemHolder”。xmlbeans的生成工件位于Generated\schemaorg\u apache\u xmlbeans3下,编译类位于project3/build/main下

如果有人有任何线索,我将不胜感激