0
votes

I'm trying to use the dependency "testCompile group: 'org.springframework', name: 'spring-test', version: '4.3.18.RELEASE'" buy when I run gradle clean build it shows

error: package org.springframework.test.context does not exist import org.springframework.test.context.ContextConfiguration;

This is my build.gradle

/*
 * This build file was auto generated by running the Gradle 'init' task
 * by 'diego.virguez' at '5/22/19 10:16 AM' with Gradle 2.14.1-rc-1
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/2.14.1-rc-1/userguide/tutorial_java_projects.html
 */

// Apply the java plugin to add support for Java
apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use 'jcenter' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
    mavenLocal()
    mavenCentral()

}

// In this section you declare the dependencies for your production and test code
dependencies {
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.21'
    compile 'org.springframework:spring-webmvc:4.1.6.RELEASE'
    compile 'junit:junit:4.12'
    compile 'javax.servlet:jstl:1.2'




    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile 'junit:junit:4.12'
    testCompile group: 'org.springframework', name: 'spring-test', version: '4.3.18.RELEASE'
    //testCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1-b09'
    compile group: 'org.springframework', name: 'spring-tx', version: '5.1.2.RELEASE'


}

and this is the error:

Task :compileJava FAILED D:\projects\personal\wiring-beans\src\main\java\soundsystem\CDPlayerTest.java:8: error: package org.springframework.test.context does not exist import org.springframework.test.context.ContextConfiguration; ^ D:\projects\personal\wiring-beans\src\main\java\soundsystem\CDPlayerTest.java:9: error: package org.springframework.test.context.junit4 does not exist import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; ^ D:\projects\personal\wiring-beans\src\main\java\soundsystem\CDPlayerTest.java:12: error: cannot find symbol @ContextConfiguration(classes = CDPlayerConfig.class) ^ symbol: class ContextConfiguration D:\projects\personal\wiring-beans\src\main\java\soundsystem\CDPlayerTest.java:11: error: cannot find symbol @RunWith(SpringJUnit4ClassRunner.class) ^ symbol: class SpringJUnit4ClassRunner 4 errors

1
Stop mixing jars/modules from different spring versions. Never mix jars from different versions of a framework that is trouble waiting to happen. You are mixing 4.1.6, 4.3.18 and 5.1.2 and find it weird that it doesn't work. Align the versions of the different modules to a single version.M. Deinum

1 Answers

0
votes

I have found that the easiest, most failsafe way to create a Spring project is to use Spring's handy-dandy project intializer.

Just select „Gradle Project“, „Java“, „2.25“ (the stable version of Spring Boot), fill in the values for your project's „Group“ and „Artifact“.

In the „Search dependencies to add“ field, you would enter „web“ and select what's presented. Then just click the green „Generate Project“ button.

After you download the generated starter project, build it. It's pretty much guaranteed to build successfully right out the gate. Because all of the required dependencies and transitive dependencies have been taken care of for you by Spring.

Even if you decide not to base your own project off that starter project (which I would advise against), you at least will be able to see what a correctly-configured Spring project should look like.