coursier / coursier/s3-support

Using `s3-support` from mill

Open
#2 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Trying to use `s3-support` from mill and getting exception: java.lang.ClassNotFoundException: com.amazonaws.services.s3.AmazonS3.

The `build.sc` looks like:
```
import mill._
import scalalib._
import coursier.maven.MavenRepository
import $ivy.`io.get-coursier:s3-support:0.2.0`
import $ivy.`com.amazonaws:aws-java-sdk-s3:1.12.506`

coursier.s3support.s3.Setup.setup()

case object Versions {
val catsVersion = "2.9.0"
val catsEffectVersion = "3.5.0"
}

case object Dependencies {
import Versions._

val common = ivy"tech.xeppaka::common:0.41.0"
val catsCore = ivy"org.typelevel::cats-core:$catsVersion"
val catsEffect = ivy"org.typelevel::cats-effect:$catsEffectVersion"
}

object `effects-app-001` extends RootModule with SbtModule {
def scalaVersion = "2.13.11"
def ivyDeps =
Agg(Dependencies.catsCore, Dependencies.catsEffect, Dependencies.common)

def repositoriesTask = T.task {
super.repositoriesTask() ++ Seq(
MavenRepository(
"s3://bucket-with-artifacts/m2/releases"
)
)
}
}
```
I think the problem is that `Thread.currentThread().getContextClassLoader()` is used to load `AmazonS3` class. Could you consider using `getClass().getClassLoader()` or accept a ClassLoader as parameter to `coursier.s3support.s3.Setup.setup()` instead?

There is also good info on stackoverflow regarding class loader: https://stackoverflow.com/questions/1771679/difference-between-threads-context-class-loader-and-normal-classloader

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.