Hello,
We have upgrade all the junit versions in pom.xml and it worked absolutely fine in local server but when deployed in cloud manager with latest (2023.1) version, the build fails with below error:
15:31:46,075 [main] [ERROR] COMPILATION ERROR :
15:31:46,076 [main] [INFO] -------------------------------------------------------------
15:31:46,080 [main] [ERROR] /build_root/build/underarmourcloudservice-p35450/ua-assetshare/core/src/test/java/com/ua/assetshare/collections/models/impl/UAHeaderImplTest.java:[17,19] cannot access org.mockito.Mock
bad class file: /root/.m2/repository/org/mockito/mockito-core/5.0.0/mockito-core-5.0.0.jar(org/mockito/Mock.class)
class file has wrong version 55.0, should be 52.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
15:31:46,081 [main] [INFO] 1 error
pom.xml
----------
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>5.9.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>5.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit-addons</groupId>
<artifactId>junit-addons</artifactId>
<version>1.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.wcm</groupId>
<artifactId>io.wcm.testing.aem-mock.junit5</artifactId>
<!-- Prefer the latest version of AEM Mock Junit5 dependency -->
<version>5.1.2</version>
<scope>test</scope>
</dependency>
If we change the "mockito-core" version to 3.12.4, it builds fine.
Solved! Go to Solution.
Views
Replies
Total Likes
Hi Shelly,
You can include exec plugin to tell you the java version during the build, it will be located in the build logs.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<id>java version printer</id>
<phase>initialize</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>mvn</executable>
<arguments>
<argument>-v</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
Have googled around and found this blog post too:
AEM as a Cloud Service & Java 11 Pipelines (theaemmaven.com)
Regards,
Peter
Hi Shelly,
I assume on your local you got Java 11 and pipeline fails with Java 1.8.
Create file .cloudmanager/java-version with 11 as content. [1] complete docs on subject.
This error indicates that code executed on Java 1.8, requires Java 11.
As per mockito-core release notes it's minimum requirements are Java 11.
So we need to point to cloudmanager pipeline you want Java 11 by creating relevant config.
[1] Build Environment | Adobe Experience Manager
Regards,
Peter
Still getting the same issue. Is there a way to check cloud manager Java version?
Hi Shelly,
You can include exec plugin to tell you the java version during the build, it will be located in the build logs.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<id>java version printer</id>
<phase>initialize</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>mvn</executable>
<arguments>
<argument>-v</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
Have googled around and found this blog post too:
AEM as a Cloud Service & Java 11 Pipelines (theaemmaven.com)
Regards,
Peter
The version being used in your local server is version 5.0.0, which has a class file version of 55.0, but the version being used in the cloud manager is an older version with a class file version of 52.0.
To resolve this issue, you'll need to ensure that the same version of the mockito-core library is being used in both your local server and the cloud manager.
You would need to find the version which has class version of 52.0 and then use that in the pom file.