On June 22, 2023, the public JCenter was moved. Apparently, some libraries got lost during the move. This also affects libraries used for the Intershop build and deployment process, meaning that some of the libraries used are no longer available in the public JCenter repository and therefore error messages such as the following occur:
FAILURE: Build failed with an exception. * What went wrong: Could not resolve all dependencies for configuration 'classpath'. > Could not find com.intershop.gradle.repoconfig:repoconfig-gradle-plugin:3.3.0. Searched in the following locations: https://jcenter.bintray.com/com/intershop/gradle/repoconfig/repoconfig-gradle-plugin/3.3.0/repoconfig-gradle-plugin-3.3.0.pom https://jcenter.bintray.com/com/intershop/gradle/repoconfig/repoconfig-gradle-plugin/3.3.0/repoconfig-gradle-plugin-3.3.0.jar Required by: unspecified:unspecified:unspecified
This article describes how to solve this issue.
Cookbook - Setup CI Infrastructure | Recipe: Create Sources From Intershop Templates
Cookbook - Setup CI Infrastructure | Recipe: Setup CI Build for Corporate Artifacts
Video Tutorial - Prepare Your Artifact Repository Server (valid to 7.10)
To solve this issue, it is necessary to do some adjustments to the corporate Gradle distribution and the ICM project as well as adding a new proxy repository to the artifact repository server. Please follow the steps below.
Please note that a new version of the repoconfig-gradle-plugin (RELEASE 3.3.3) is available (as of June 27), which is more repository-independently due to its additional reference to the mavenCentral repository. The article refers to release 3.3.2, which can still be used to solve the issue, but does not yet provide complete independence from JCenter.
Platform Customers can skip this step.
Please add the PluginPortal repository to the artifact repository server (e.g., Nexus) and add the new PluginPortal Proxy Repository to the Components Group.
Name | ID | Repository Type | Remote Storage Location | Format |
---|---|---|---|---|
PluginPortal | pluginPortal | Proxy | Maven2 |
Navigate to the corporate Gradle distribution root project (corporate-distribution) and open the src/init.d/intershop-init.gradle file.
To get the source corporate-distribution root project, check out the sources of the corporate-distribution root project from your VCS (<sources>/devops/gradle/corporate-distribution) to a folder named corporate-distribution, or follow the steps described in Cookbook - Setup CI Infrastructure | Recipe: Create Sources From Intershop Templates.
Platform Customers can find the source corporate-distribution Repo in their Azure DevOps project.
Apply the following changes to the intershop-init.gradle file:
Original:
... initscript { repositories { jcenter() } dependencies { //Repository configuration - provided by Intershop classpath 'com.intershop.gradle.repoconfig:repoconfig-gradle-plugin:3.3.0' } } ...
New:
... initscript { repositories { mavenCentral() } dependencies { //Repository configuration - provided by Intershop classpath 'com.intershop.gradle.repoconfig:repoconfig-gradle-plugin:3.3.3' } } ...
Update the plugin com.intershop.gradle.scm:scmversion-gradle-plugin
to the latest version 2.7.5
and the gradle-release-plugins to the version 3.7.3
.
Additional note for the SCM version plugin: We noticed an issue with the version calculation when using version 2.7.4
. Therefore, please use version 2.7.5
.
<corporate-distribution>/build.gradle
Original:
plugins { ... id 'com.intershop.gradle.scmversion' version '2.3.5' id 'com.intershop.gradle.simplepublish-configuration' version '3.5.2' ...
New:
plugins { ... id 'com.intershop.gradle.scmversion' version '2.7.5' //id 'com.intershop.gradle.artifactorypublish-configuration' version '3.7.3' id 'com.intershop.gradle.simplepublish-configuration' version '3.7.3' ...
Platform Customers: Please use the Azure Pipeline for this task. Please do not forget to increase the version number (from '2.0.0' to e.g., '3.0.0') in the azure-pipelines.yml file.
The general steps to publish a new release of the corporate Gradle distribution are described in the following recipe: Cookbook - Setup CI Infrastructure | Recipe: Setup CI Build for Corporate Artifacts
The new release of the corporate Gradle distribution needs to be configured in the project for the Gradle wrapper in 'gradle/wrapper/gradle-wrapper.properties'.
<root-project>/gradle/wrapper/gradle-wrapper.properties
distributionUrl=<NEW_CORPORATE_GRADLE_DISTRIBUTION_RELEASE_ZIP_REPOSITORY_PATH>
In the ICM root project, it is necessary to update and add some plugins.
<root-project>/build.gradle
... buildscript { dependencies { //bintray dependencies classpath 'com.intershop.gradle.scm:scmversion-gradle-plugin:2.7.5' classpath 'com.intershop.gradle.publish:gradle-release-plugins:3.7.3' classpath 'com.intershop.gradle.sonarqube:sonarqube-gradle-plugin:2.1.3' classpath 'com.intershop.gradle.versionrecommender:versionrecommender-gradle-plugin:1.3.8' classpath 'com.intershop.gradle.repoconfig:repoconfig-gradle-plugin:3.3.3' classpath 'com.intershop.gradle.resourcelist:resourcelist-gradle-plugin:2.2.0' classpath 'com.intershop.gradle.jaxb:jaxb-gradle-plugin:2.1.0' classpath 'com.intershop.gradle.javacc:javacc-gradle-plugin:2.1.0' classpath 'com.intershop.gradle.isml:isml-gradle-plugin:1.1.0' classpath 'com.intershop.gradle.wsdl:wsdl-gradle-plugin:1.2.0' ...
Additional note for the SonarQube plugin: Updating the plugin is only necessary for projects using an old SonarQube server (version < 9.X)! In other projects not using SonarQube, the plugin and the configuration can be removed!