java: lombok: #Slf4j: log cannot be resolved - java

I am using openjdk11 and using lombok library. My #Slf4j works fine in java path (src/main/java) but gets error in test path(src/test/java). The error is " can not find symbol". May I get any insight on why is happening and how to fix?
I am using spring boot and unit tests are running with MockitoJUnitRunner. So the test classes are annotated as
#RunWith(MockitoJUnitRunner.class)
#Slf4j
public class ErrorPathUnitTest {
}
Gradle version: 5.5
LOMBOK_VERSION:1.18.6

I could resolve this following the instruction here: https://projectlombok.org/setup/gradle

Try adding the following gradle dependencies:
compileOnly 'org.projectlombok:lombok'
testCompile 'org.projectlombok:lombok'

Make sure you don't have compileOnly for lombok dependency in build.gradle

Related

Build failed : Cannot find JAR 'aws-java-sdk-core-1.11.948.jar' SpringBoot

I'm trying to run spring boot project, but i get this error.
any idea what error is this ?
Cannot find JAR 'aws-java-sdk-core-1.11.948.jar' required by module 'gradle-resources-s3' using classpath or distribution directory '/home/mbunderline76/.gradle/wrapper/dists/gradle-7.3.2-bin/4k4cn06q0rruwh9dpndf9gmi8/gradle-7.3.2'
You need to add dependency for the jar required by your gradle version. Trying adding this dependency and refreshing your gradle.
implementation group: 'com.amazonaws', name: 'aws-java-sdk-core', version: '1.11.948'
or
implementation 'com.amazonaws:aws-java-sdk-core:1.11.948'
Running on M1 Mac with Kotlin, Adding
configurations.all {
resolutionStrategy {
force ("software.amazon.awssdk.crt:aws-crt:0.16.12")
}
}
to the build.gradle.kts file (don't forget to refresh) worked for me as a work around per this(https://github.com/awslabs/aws-sdk-kotlin/issues/473) github issue

Junit Runner cannot be resolved type

I am using Springboot 2.1.3.RELEASE version.
Recently I have written DAO, Service, Component and Integration layer test cases using Junit 5 and Mockito framework all these test cases are working fine.
If I want to run all these test cases then individually I have to run each test classes.
To overcome this problem I have implemented Spring Suite using Junit 5.
Recently I made changes in build.gradle file or added junit-platform-runner dependency.
After adding this dependency my Suite class throwing below exception.
The type org.junit.runner.Runner cannot be resolved. It is indirectly referenced from required .class files
Here is my Spring Suite class
SpringSuitTest.java
import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.SelectClasses;
import org.junit.runner.RunWith;
#RunWith(JUnitPlatform.class)
#SelectClasses({someclasseshere.class})
public class SpringSuitTest {
}
My dependencies
// Runtime dependencies
testRuntime("org.junit.jupiter:junit-jupiter-engine:5.3.2")
testRuntime("org.junit.platform:junit-platform-runner:1.5.2")
testCompile("org.junit.jupiter:junit-jupiter-api:5.3.2")
testCompile("org.mockito:mockito-core:2.27.0")
testCompile("org.mockito:mockito-junit-jupiter:2.27.0")
I googled a lot but none of the solutions worked for me.
Recently I have added Junit runner dependency, I am considering may be invalid version I have added
testRuntime("org.junit.platform:junit-platform-runner:1.5.2")
Any idea why I am getting such exception.
Thank you
After adding below 2 dependencies resolved the issue.
testImplementation group: 'org.junit.vintage', name: 'junit-vintage-engine', version: '5.3.2'
testImplementation group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.2.0'

Cannot resolve symbol AndroidSchedulers

I'm using version 2.0.0 of RxJava, and it seems like I have no access to AndroidSchedulers. I'm unable to get access to mainthread through RxJava
AndroidSchedulers class is a part of RxAndroid library. Add it to your app's build.gradle:
before Gradle v3.0:
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
since Gradle v3.0:
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
Go back to Old Versions:
compile 'io.reactivex:rxandroid:1.2.1'
compile 'io.reactivex:rxjava:1.1.6'
Then to the Newer Version:
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.1'
Sounds Weird but it works
I had same problem. You cannot call AndroidSchedulers with RxJava3. I think this is a bug. They need to fix it.
You need to add they on your dependencies of gradle:
//RxAndroid
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
//RxJava
implementation 'io.reactivex.rxjava2:rxjava:2.2.10'
def rxJavaVersion = '2.1.1'
//Add to dependencies the following libraries
dependencies {
implementation "io.reactivex.rxjava2:rxandroid:$rxJavaVersion"
implementation "io.reactivex.rxjava2:rxjava:$rxJavaVersion"
}
Now you can use RX 3 by adding the below dependency
implementation "io.reactivex.rxjava3:rxandroid:$version"
get the version from this link : https://github.com/ReactiveX/RxAndroid

The import org.mockito.Mock cannot be found

I am experiencing a problem I hope you can help with.
I want to use Mockito in my Spring Boot w/Gradle project, but STS cannot resolve the dependancy.
I have the following in my build.gradle file;
repositories { jcenter() }
dependencies { testCompile('org.mockito:mockito-core:1.+') }
When I do a ./gradlew --info build I can see that it is resolving Mockito:
Resolved versions: {org.mockito:mockito-core=1.+}
Using version '1.+' for dependency 'org.mockito:mockito-core:1.+'
Using version '1.+' for dependency 'org.mockito:mockito-core:1.10.19'
After a ./gradlew cleanEclipse eclipse it is in my STS Project's Build Path
My Code File is showing the following message:
I have another project, setup in exactly the same way and it is working fine.
Please help me out guys, Luke.
Use with a static import:
import static org.mockito.Mockito.when; ...or...
import static org.mockito.Mockito.*;
To add to #Harshad's response, you can make your life easier and let Eclipse handle the static imports by adding the mockito methods to your favorite imports
This will then result in the following hint:
Add the dependencies with androidTestImplementation "org.mockito:mockito-core:2.28.2" instead of the testImplementation "org.mockito:mockito-core:2.28.2"
The dependencies added with androidTestImplementation will be available in:
app\src\androidTest
The dependencies added with testImplementation will only be available in the android test folder available on:
app\src\test
Add testCompile('org.mockito:mockito-core:3.1.0') dependency to build.gradle and then download sources works for me in Netbeans IDE. Version number can be different.

Exclude Package From Gradle Dependency

I'm experiencing an issue where multiple versions of the same class are showing up in my classpath. The class in question is javax.ws.rs.core.UriBuilder. The version I want to use is brought in by javax.ws.rs:javax.ws.rs-api:2.0.1. However, we also use the Jira rest client library which has a dependency on the older version of jersey (com.sun.jersey:jersey-core) which has included the java.ws packages bundled in it's jar.
Here is an example snippet from the build file:
dependencies {
compile 'com.atlassian.jira:jira-rest-java-client-core:2.0.0-m31'
compile 'javax.ws.rs:javax.ws.rs-api:2.0.1'
compile 'org.glassfish.jersey.core:jersey-client:2.17'
}
I can't remove com.sun.jersey:jersey-core as it uses different package name from the new version and would cause class def not found exceptions in the Jira client.
As far as I can tell, my options at this point are:
Revert to using Jersey 1.x and it's implementation of jsr311
Somehow have gradle exclude the javax.ws package from the old jersey client.
I'd like to keep using the newer version of jersey so #2 would be my ideal solution but I'm not sure if it's even possible. Does anyone know how to go about this? If that's not possible, I'm open to other suggestions.
You can exclude an transitive dependency module like this:
compile ('org.glassfish.jersey.core:jersey-client:2.17') {
exclude group: 'javax.ws.rs'
exclude module: 'javax.ws.rs-api'
}
ref: 50.4.7 here
I found out that com.sun.jersey:jersey-core:1.19 doesn't bundle the javax.ws.rs class files and instead lists them as a compile-time dependency. Adding this snippet to my build.gradle fixed the issue.
configurations.all {
resolutionStrategy {
// For a version that doesn't package javax.ws
force 'com.sun.jersey:jersey-core:1.19'
}
}
exclude the group and module as below.
Ex :
implementation('org.apache.httpcomponents:httpclient:4.5.13') {
exclude group: 'commons-codec', module: 'commons-codec'
}

Categories

Resources