Jcenter() repository is going away

@Noisyfox @kisg JFrog just announced that they’ll be shutting down JCenter https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

Key dates are:

  • February 28th: No more submissions will be accepted to Bintray, JCenter
  • May 1st: Bintray, JCenter services will no longer be available

So, the moe artifacts should also be migrated to another maven repository. Perhaps the Maven central. That is for maven/gradle plugins and the engine runtime, and maybe the old versions too. Otherwise old artifacts won’t be available after May 1st.

This blog post has a good overview.

1 Like

Thank you for the report, we are already in contact with @Noisyfox to solve this issue.

1 Like

The time is almost here, any update?

Earlier this week JCenter disabled downloads for a bit so we got a taste of what was to come. We weren’t able to successfully build on new machines but the local gradle dependency cache enabled builds to continue working on machines that had already done a build.

Switching from jcenter() to mavenCentral() was super easy and all our dependencies except for MOE were already available there. For now we just added the MOE JAR to our source repo and added an explicit gradle dependency on the com.jcraft.jsch package that the MOE POM specifies but would be nicer if the MOE POM were just available from Maven Central or another public server.

We already have an account for Maven Central, we are preparing the artifacts for upload. I will keep you posted here.

1 Like

UPDATE 4/27/2021: We listened to the community and will keep JCenter as a read-only repository indefinitely. Our customers and the community can continue to rely on JCenter as a reliable mirror for Java packages

1 Like

Apparently indefinitely ended because they aren’t allowing downloads again… :man_shrugging::joy:

Additionally, the last versions for Android Gradle plugins are choking on any references of jcenter(). Basically you have to remove it from the build… or stay on the previous plugin version.

This is probably not too critical for MOE, because you won’t use MOE dependencies in the same modules where Android plugins are used.

That is bad :frowning:

I will spin up an alternative tomorrow until we can finish the transition to Maven Central.

We just had our CI task assigned to a new executor and now builds are failing again.

The moe-gradle plugin has code to check for the moe-sdk on the filesystem and if not found it attempts to download from a hardcoded bintray URL: https://github.com/multi-os-engine-community/moe-plugin-gradle/blob/moe-master/src/main/java/org/moe/gradle/MoeSDK.java#L299

So before moe will build on a new machine that doesn’t have the sdk already installed the moe plugin needs an update as well

Yes, for now you could manually copy the sdk from your old machine to new one.

Hi there!
Are there any estimates for fixing that?
I have a problem building the project:

Could not resolve org.multi-os-engine.community:moe-sdk:1.7.3.
Could not get resource ‘https://dl.bintray.com/noisyfox/maven/org/multi-os-engine/community/moe-sdk/1.7.3/moe-sdk-1.7.3.pom’.
Could not HEAD ‘https://dl.bintray.com/noisyfox/maven/org/multi-os-engine/community/moe-sdk/1.7.3/moe-sdk-1.7.3.pom’. Received status code 403 from server: Forbidden

Also, the same problem with moe-gradle
Please help to solve that.

Thank you for your reply! I have added the buildscript block as you suggested in the post, but the issue remains but with different version:

A problem occurred evaluating project ':client-ios'.
> Failed to apply plugin [id 'moe']
   > Could not resolve all dependencies for configuration ':client-ios:moeMavenSDK'.
      > Could not resolve org.multi-os-engine.community:moe-sdk:1.7.1.
        Required by:
            project :client-ios
         > Could not resolve org.multi-os-engine.community:moe-sdk:1.7.1.
            > Could not get resource 'https://dl.bintray.com/noisyfox/maven/org/multi-os-engine/community/moe-sdk/1.7.1/moe-sdk-1.7.1.pom'.
               > Could not GET 'https://dl.bintray.com/noisyfox/maven/org/multi-os-engine/community/moe-sdk/1.7.1/moe-sdk-1.7.1.pom'. Received status code 403 from server: Forbidden

A part of build.gradle:

apply plugin: "moe"
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath group: 'org.multi-os-engine', name: 'moe-gradle', version: '1.7.4'
    }
}

Seems that some of your other modules are still using the old plugin.

How can I force to use the new version then?
I tried to add the following line, but with no luck :frowning:

project.getExtensions().getExtraProperties().set("moeSDKVersion", "1.7.4")

leads to error: Could not GET 'https://dl.bintray.com/noisyfox/maven/org/multi-os-engine/community/moe-sdk/1.7.4/moe-sdk-1.7.4.pom'. Received status code 403 from server: Forbidden

Not the SDK version, you need to update the moe gradle plugin version instead. Just search for ‘moe-gradle’ in your project.