takahirom / roborazzi

Make JVM Android integration test visible 🤖📸
https://takahirom.github.io/roborazzi/
Apache License 2.0
649 stars 24 forks source link

Caused by: java.lang.NoClassDefFoundError: com/github/takahirom/roborazzi/CaptureResult #378

Closed takahirom closed 1 month ago

takahirom commented 1 month ago

I'm seeing this error

Caused by: java.lang.NoClassDefFoundError: com/github/takahirom/roborazzi/CaptureResult
    at io.github.takahirom.roborazzi.RoborazziPlugin$apply$configureRoborazziTasks$finalizeTestRoborazziTask$1$execute$2.invoke(RoborazziPlugin.kt:237)
    at io.github.takahirom.roborazzi.RoborazziPlugin$apply$configureRoborazziTasks$finalizeTestRoborazziTask$1$execute$2.invoke(RoborazziPlugin.kt:226)
    at io.github.takahirom.roborazzi.RoborazziPlugin$apply$configureRoborazziTasks$finalizeTestRoborazziTask$1.execute$lambda$1(RoborazziPlugin.kt:226)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:835)
takahirom commented 1 month ago

It is in roborazzi-core/commonJvmMain https://github.com/takahirom/roborazzi/blob/d90d1c261f5867d269e50bf24b049ac11ddf9892/include-build/roborazzi-core/src/commonJvmMain/kotlin/com/github/takahirom/roborazzi/CaptureResult.kt#L21

takahirom commented 1 month ago

We are using api for core module 👀 https://github.com/takahirom/roborazzi/blob/main/roborazzi/build.gradle#L18 https://github.com/takahirom/roborazzi/blob/main/include-build/roborazzi-gradle-plugin/build.gradle#L17 https://github.com/takahirom/roborazzi/blob/main/include-build/roborazzi-gradle-plugin/src/main/java/io/github/takahirom/roborazzi/RoborazziPlugin.kt#L237

takahirom commented 1 month ago

https://repo1.maven.org/maven2/io/github/takahirom/roborazzi/roborazzi-gradle-plugin/1.17.0/

https://repo1.maven.org/maven2/io/github/takahirom/roborazzi/roborazzi-gradle-plugin/1.17.0/roborazzi-gradle-plugin-1.17.0.pom

<dependency>
<groupId>io.github.takahirom.roborazzi</groupId>
<artifactId>roborazzi-core-jvm</artifactId>
<version>1.17.0</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>

https://repo1.maven.org/maven2/io/github/takahirom/roborazzi/roborazzi-core-jvm/

image
takahirom commented 1 month ago

I was able to solve this issue by adding the Roborazzi plugin to the root module with apply false to include it in the classpath of my project.