From 16eb7b28fd1e751a8cbd86e7794fb2f9a70f3cea Mon Sep 17 00:00:00 2001 From: Roberto Tyley Date: Sun, 3 Aug 2014 09:11:56 +0100 Subject: [PATCH 1/3] Use HTTPS for downloading artifacts from Maven Central Sonatype have enabled HTTPS access for Maven Central: http://central.sonatype.org/articles/2014/Aug/03/https-support-launching-now/ Note that the Ivy class IBiblioResolver contains the old http url (ie DEFAULT_M2_ROOT="http://repo1.maven.org/maven2/"): http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java?revision=1557968&view=markup#l72 --- ivy/src/main/scala/sbt/Resolver.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ivy/src/main/scala/sbt/Resolver.scala b/ivy/src/main/scala/sbt/Resolver.scala index b9201a55d..b82738598 100644 --- a/ivy/src/main/scala/sbt/Resolver.scala +++ b/ivy/src/main/scala/sbt/Resolver.scala @@ -6,7 +6,7 @@ package sbt import java.io.File import java.net.URL import scala.xml.NodeSeq -import org.apache.ivy.plugins.resolver.{ DependencyResolver, IBiblioResolver } +import org.apache.ivy.plugins.resolver.DependencyResolver sealed trait Resolver { def name: String @@ -135,7 +135,7 @@ final case class SftpRepository(name: String, connection: SshConnection, pattern import Resolver._ -object DefaultMavenRepository extends MavenRepository("public", IBiblioResolver.DEFAULT_M2_ROOT) +object DefaultMavenRepository extends MavenRepository("public", DefaultMavenRepositoryRoot) object JavaNet2Repository extends MavenRepository(JavaNet2RepositoryName, JavaNet2RepositoryRoot) object JCenterRepository extends MavenRepository(JCenterRepositoryName, JCenterRepositoryRoot) object JavaNet1Repository extends JavaNet1Repository @@ -151,6 +151,7 @@ object Resolver { val JavaNet2RepositoryRoot = "http://download.java.net/maven/2" val JCenterRepositoryName = "jcenter" val JCenterRepositoryRoot = "https://jcenter.bintray.com/" + val DefaultMavenRepositoryRoot = "https://repo1.maven.org/maven2/" // obsolete: kept only for launcher compatibility private[sbt] val ScalaToolsReleasesName = "Sonatype OSS Releases" From 9e245b3fc3253ef6b7d80c43e278fd59e137a825 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 7 Aug 2014 13:57:04 -0400 Subject: [PATCH 2/3] Adds sbt.repository.secure (default: true) #1494 --- ivy/src/main/scala/sbt/Resolver.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ivy/src/main/scala/sbt/Resolver.scala b/ivy/src/main/scala/sbt/Resolver.scala index b82738598..52fbf0fb8 100644 --- a/ivy/src/main/scala/sbt/Resolver.scala +++ b/ivy/src/main/scala/sbt/Resolver.scala @@ -135,7 +135,7 @@ final case class SftpRepository(name: String, connection: SshConnection, pattern import Resolver._ -object DefaultMavenRepository extends MavenRepository("public", DefaultMavenRepositoryRoot) +object DefaultMavenRepository extends MavenRepository("public", centralRepositoryRoot(useSecureResolvers)) object JavaNet2Repository extends MavenRepository(JavaNet2RepositoryName, JavaNet2RepositoryRoot) object JCenterRepository extends MavenRepository(JCenterRepositoryName, JCenterRepositoryRoot) object JavaNet1Repository extends JavaNet1Repository @@ -144,6 +144,8 @@ sealed trait JavaNet1Repository extends Resolver { } object Resolver { + private[sbt] def useSecureResolvers = sys.props.get("sbt.repository.secure") map { _.toLowerCase == "true" } getOrElse true + val TypesafeRepositoryRoot = "http://repo.typesafe.com/typesafe" val SbtPluginRepositoryRoot = "http://repo.scala-sbt.org/scalasbt" val SonatypeRepositoryRoot = "https://oss.sonatype.org/content/repositories" @@ -152,6 +154,7 @@ object Resolver { val JCenterRepositoryName = "jcenter" val JCenterRepositoryRoot = "https://jcenter.bintray.com/" val DefaultMavenRepositoryRoot = "https://repo1.maven.org/maven2/" + private[sbt] def centralRepositoryRoot(secure: Boolean) = (if (secure) "https" else "http") + "://repo1.maven.org/maven2/" // obsolete: kept only for launcher compatibility private[sbt] val ScalaToolsReleasesName = "Sonatype OSS Releases" From 1185e5b5dd0de531f819b3675def247f88c8dca1 Mon Sep 17 00:00:00 2001 From: Roberto Tyley Date: Fri, 8 Aug 2014 10:33:36 +0100 Subject: [PATCH 3/3] Fix pom-export of Maven Central repository Commit a1e26ca6 broke the `make-pom` & `pom-advanced` dependency-management tests by replacing one reference to `IBiblioResolver.DEFAULT_M2_ROOT` in `Resolver`, but not the other reference in `MakePom`: https://travis-ci.org/sbt/sbt/jobs/31939788#L2517-L2519 ...the secure url was no longer recognised as the default Maven Repository root, so was erroneously exported. --- ivy/src/main/scala/sbt/MakePom.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivy/src/main/scala/sbt/MakePom.scala b/ivy/src/main/scala/sbt/MakePom.scala index be3baba63..ee238371c 100644 --- a/ivy/src/main/scala/sbt/MakePom.scala +++ b/ivy/src/main/scala/sbt/MakePom.scala @@ -307,7 +307,7 @@ class MakePom(val log: Logger) { val repositories = if (includeAll) allResolvers(settings) else resolvers(settings.getDefaultResolver) val mavenRepositories = repositories.flatMap { - case m: IBiblioResolver if m.isM2compatible && m.getRoot != IBiblioResolver.DEFAULT_M2_ROOT => + case m: IBiblioResolver if m.isM2compatible && m.getRoot != DefaultMavenRepository.root => MavenRepository(m.getName, m.getRoot) :: Nil case _ => Nil }