diff options
author | Roman Timushev <rtimush@gmail.com> | 2017-12-29 10:28:51 +0100 |
---|---|---|
committer | Roman Timushev <rtimush@gmail.com> | 2017-12-29 19:05:00 +0100 |
commit | 1a0cce2d21e9d90058386890f77a57291a494359 (patch) | |
tree | 84776b5439c07292fd01a665b1fae2fd7510f0eb /scalaplugin/src | |
parent | 8583a2a95a0bf0b3dcfb74bfb47ea18719be01c1 (diff) | |
download | mill-1a0cce2d21e9d90058386890f77a57291a494359.tar.gz mill-1a0cce2d21e9d90058386890f77a57291a494359.tar.bz2 mill-1a0cce2d21e9d90058386890f77a57291a494359.zip |
Cross-publish for ScalaJS
Diffstat (limited to 'scalaplugin/src')
3 files changed, 20 insertions, 17 deletions
diff --git a/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala b/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala index b1102234..13e91c2a 100644 --- a/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala +++ b/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala @@ -257,29 +257,32 @@ trait ScalaModule extends Module with TaskModule { outer => options = Seq("-usejavacp") ) } -} - -trait PublishModule extends ScalaModule { outer => - import mill.scalaplugin.publish._ - - def publishName: T[String] = basePath.last.toString - def publishVersion: T[String] = "0.0.1-SNAPSHOT" - def pomSettings: T[PomSettings] // publish artifact with name "mill_2.12.4" instead of "mill_2.12" - def publishWithFullScalaVersion: Boolean = false + def crossFullScalaVersion: T[Boolean] = false + def artifactName: T[String] = basePath.last.toString def artifactScalaVersion: T[String] = T { - if (publishWithFullScalaVersion) scalaVersion() + if (crossFullScalaVersion()) scalaVersion() else scalaBinaryVersion() } + def artifactId: T[String] = T { s"${artifactName()}_${artifactScalaVersion()}" } + +} + +trait PublishModule extends ScalaModule { outer => + import mill.scalaplugin.publish._ + + def pomSettings: T[PomSettings] + def publishVersion: T[String] = "0.0.1-SNAPSHOT" + def pom = T { val dependencies = ivyDeps().map(Artifact.fromDep(_, scalaVersion(), scalaBinaryVersion())) - val pom = Pom(artifact(), dependencies, publishName(), pomSettings()) + val pom = Pom(artifact(), dependencies, artifactName(), pomSettings()) - val pomPath = T.ctx().dest / s"${publishName()}_${artifactScalaVersion()}-${publishVersion()}.pom" + val pomPath = T.ctx().dest / s"${artifactId()}-${publishVersion()}.pom" write.over(pomPath, pom) PathRef(pomPath) } @@ -294,7 +297,7 @@ trait PublishModule extends ScalaModule { outer => } def artifact: T[Artifact] = T { - Artifact(pomSettings().organization, s"${publishName()}_${artifactScalaVersion()}", publishVersion()) + Artifact(pomSettings().organization, artifactId(), publishVersion()) } def publishLocal(): define.Command[Unit] = T.command { @@ -313,7 +316,7 @@ trait PublishModule extends ScalaModule { outer => def sonatypeSnapshotUri: String = "https://oss.sonatype.org/content/repositories/snapshots" def publish(credentials: String, gpgPassphrase: String): define.Command[Unit] = T.command { - val baseName = s"${publishName()}_${artifactScalaVersion()}-${publishVersion()}" + val baseName = s"${artifactId()}-${publishVersion()}" val artifacts = Seq( jar().path -> s"${baseName}.jar", sourcesJar().path -> s"${baseName}-sources.jar", diff --git a/scalaplugin/src/test/scala/mill/scalaplugin/AcyclicTests.scala b/scalaplugin/src/test/scala/mill/scalaplugin/AcyclicTests.scala index 529dda0c..131ee6bb 100644 --- a/scalaplugin/src/test/scala/mill/scalaplugin/AcyclicTests.scala +++ b/scalaplugin/src/test/scala/mill/scalaplugin/AcyclicTests.scala @@ -13,11 +13,11 @@ object AcyclicBuild{ for(crossVersion <- Cross("2.10.6", "2.11.8", "2.12.3", "2.12.4")) yield new SbtScalaModule with PublishModule {outer => def basePath = AcyclicTests.workspacePath - def publishName = "acyclic" + def artifactName = "acyclic" def publishVersion = "0.1.7" def pomSettings = PomSettings( - description = publishName(), + description = artifactName(), organization = "com.lihaoyi", url = "https://github.com/lihaoyi/acyclic", licenses = Seq( diff --git a/scalaplugin/src/test/scala/mill/scalaplugin/HelloWorldTests.scala b/scalaplugin/src/test/scala/mill/scalaplugin/HelloWorldTests.scala index a265b953..4272654a 100644 --- a/scalaplugin/src/test/scala/mill/scalaplugin/HelloWorldTests.scala +++ b/scalaplugin/src/test/scala/mill/scalaplugin/HelloWorldTests.scala @@ -42,7 +42,7 @@ object HelloWorldFatalWarnings extends HelloWorldModule { } object HelloWorldWithPublish extends HelloWorldModule with PublishModule { - def publishName = "hello-world" + def artifactName = "hello-world" def publishVersion = "0.0.1" def pomSettings = PomSettings( |