Trouble downloading gatling-sbt through artifactory proxy

All,

I’m trying to re-build our test suite on an EC2 instance, which has some very strict firewall rules. I’m only allowed to use our artifactory instance to download packages. That part works, for everything except gatling-sbt.

When it tries to download gatling-sbt, the response looks like this:

{
“errors” : [ {
“status” : 404,
“message” : “Failed to transform pom file: The target deployment path ‘io/gatling/gatling-sbt_2.12_1.0/4.1.2/gatling-sbt-4.1.2.pom’ does not match the POM’s expected path prefix ‘io/gatling/gatling-sbt/4.1.2’. Please verify your POM content for correctness and make sure the source path is a valid Maven repository root path.”
} ]
}

Would appreciate it if someone more knowledgeable than I could tell me what I have to change to make this work. I followed the instructions here:(https://gatling.io/docs/gatling/reference/current/extensions/sbt_plugin/).

Here’s my project/plugins.sbt:

//resolvers += Resolver.bintrayIvyRepo( “gatling”, “sbt-plugins” ) // no longer needed, I presume

addSbtPlugin(“io.gatling” % “gatling-sbt” % “4.1.2”)

And of course, my build.sbt includes

enablePlugins(GatlingPlugin)

Any suggestions on what I’m doing wrong?

Yes, I know Maven is the way forward, but this is a code base that dates back a couple years. Next time I’ll do maven. For now, I need this to work. :slight_smile:

Have you done something like this? https://www.scala-sbt.org/1.x/docs/Proxy-Repositories.html

Yes. Note, the error says "Failed to transform POM file " It’s not a credentials problem. The POM thinks it should only be accessed via Maven, but SBT is trying to access it via IVY and the proxy is getting confused. At least, that’s as near as I can tell.

Until a few months ago, sbt plugins were hosted on Bintray, with an ivy format.
As JFrog dedicated to shut Bintray down, they were moved to maven central.
But the maven and ivy descriptor formats are different and sbt plugins’ naming scheme is weird, with files not matching the artifactId in the pom (it’s suffixed with the Scala and sbt versions).

It see several possible issues:

  • your corporate maven repository proxy doesn’t handle sbt plugins nicely
  • sbt’s support of corporate repository proxies is broken
  • sbt’s way of generating poms for sbt plugins is broken

All in all, I expect all of those to be problematic if Scala and sbt don’t have sufficient momentum in organization to get them fixed.

My best advice is to switch to maven (or gradle) where support for corporate repositories proxies is 100% battle proven.

Thanks, I’ll push the artifactory admins to fix it. :slight_smile: