मेरे पास MyPlugin नामक एक प्लगइन है जिसे किसी अन्य प्लगइन से एक मान अपडेट करने की आवश्यकता है। मैंने इस प्रकार उस प्लगइन को एक निर्भरता के रूप में जोड़ा है

एक एसबीटी प्लगइन से लॉगिंग

मेरे द्वारा अपने एसबीटी प्लगइन में उपयोग किए जाने वाले प्लगइन से सेटिंगकी प्रदान करने की आवश्यकता है

हालांकि, एसबीटी निर्भरता fm-sbt-s3-resolver को हल करने में विफल रहता है। परियोजना पर निर्भरता को शामिल करने का उचित तरीका क्या है?

मैंने इसे MyPlugin के build.sbt पर enablePlugins में जोड़ने के साथ-साथ इसे dependencies में इस तरह जोड़ने का प्रयास किया है:

libraryDependencies ++= Seq(
  "com.amazonaws" % "aws-java-sdk-sts" % amazonSDKVersion,
  "com.frugalmechanic" % "fm-sbt-s3-resolver" % "0.17.0"
)

MyPlugin.scala में:

import fm.sbt.S3ResolverPlugin

object MyPlugin {
  override def requires = S3ResolverPlugin

  override lazy val globalSettings = Seq(
    resolvers += repos
    S3ResolverPlugin.autoImport.s3CredentialsProvider := s3CredentialsProviderChain
  )
}

मुझे यह त्रुटि एसबीटी से मिलती है:

मुझे प्रोजेक्ट यह url मावेन सेंट्रल रेपो पर।

module not found: com.frugalmechanic#fm-sbt-s3-resolver;0.17.0
[warn] ==== typesafe-ivy-releases: tried
[warn]   https://repo.typesafe.com/typesafe/ivy-releases/com.frugalmechanic/fm-sbt-s3-resolver/0.17.0/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn]   https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.frugalmechanic/fm-sbt-s3-resolver/0.17.0/ivys/ivy.xml
[warn] ==== local: tried
[warn]   /Users/localuser/.ivy2/local/com.frugalmechanic/fm-sbt-s3-resolver/0.17.0/ivys/ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/com/frugalmechanic/fm-sbt-s3-resolver/0.17.0/fm-sbt-s3-resolver-0.17.0.pom
[warn] ==== local-preloaded-ivy: tried
[warn]   /Users/localuser/.sbt/preloaded/com.frugalmechanic/fm-sbt-s3-resolver/0.17.0/ivys/ivy.xml
[warn] ==== local-preloaded: tried
[warn]   file:////Users/localuser/.sbt/preloaded/com/frugalmechanic/fm-sbt-s3-resolver/0.17.0/fm-sbt-s3-resolver-0.17.0.pom
[warn] ==== sonatype-public: tried
[warn]   https://oss.sonatype.org/content/repositories/public/com/frugalmechanic/fm-sbt-s3-resolver/0.17.0/fm-sbt-s3-resolver-0.17.0.pom
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.frugalmechanic#fm-sbt-s3-resolver;0.17.0: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn] 
[warn]  Note: Unresolved dependencies path:
[warn]      com.frugalmechanic:fm-sbt-s3-resolver:0.17.0 (/Users/localuser/lendi/core/scala/lendi-plugin/build.sbt#L13-17)
[warn]        +- com.mypackage.my-plugin:0.0.6 (scalaVersion=2.12, sbtVersion=1.0)
[error] sbt.librarymanagement.ResolveException: unresolved dependency: com.frugalmechanic#fm-sbt-s3-resolver;0.17.0: not found
[error]     at sbt.internal.librarymanagement.IvyActions$.resolveAndRetrieve(IvyActions.scala:332)
[error]     at sbt.internal.librarymanagement.IvyActions$.$anonfun$updateEither$1(IvyActions.scala:208)
[error]     at sbt.internal.librarymanagement.IvySbt$Module.$anonfun$withModule$1(Ivy.scala:239)
[error]     at sbt.internal.librarymanagement.IvySbt.$anonfun$withIvy$1(Ivy.scala:204)
[error]     at sbt.internal.librarymanagement.IvySbt.sbt$internal$librarymanagement$IvySbt$$action$1(Ivy.scala:70)
[error]     at sbt.internal.librarymanagement.IvySbt$$anon$3.call(Ivy.scala:77)
[error]     at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:95)
[error]     at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:80)
[error]     at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:99)
[error]     at xsbt.boot.Using$.withResource(Using.scala:10)
[error]     at xsbt.boot.Using$.apply(Using.scala:9)
[error]     at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:60)
[error]     at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:50)
[error]     at xsbt.boot.Locks$.apply0(Locks.scala:31)
[error]     at xsbt.boot.Locks$.apply(Locks.scala:28)
[error]     at sbt.internal.librarymanagement.IvySbt.withDefaultLogger(Ivy.scala:77)
[error]     at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:199)
[error]     at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:196)
[error]     at sbt.internal.librarymanagement.IvySbt$Module.withModule(Ivy.scala:238)
[error]     at sbt.internal.librarymanagement.IvyActions$.updateEither(IvyActions.scala:193)
[error]     at sbt.librarymanagement.ivy.IvyDependencyResolution.update(IvyDependencyResolution.scala:20)
[error]     at sbt.librarymanagement.DependencyResolution.update(DependencyResolution.scala:56)
[error]     at sbt.internal.LibraryManagement$.resolve$1(LibraryManagement.scala:45)
[error]     at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$12(LibraryManagement.scala:93)
[error]     at sbt.util.Tracked$.$anonfun$lastOutput$1(Tracked.scala:68)
[error]     at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$19(LibraryManagement.scala:106)
[error]     at scala.util.control.Exception$Catch.apply(Exception.scala:224)
[error]     at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11(LibraryManagement.scala:106)
[error]     at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11$adapted(LibraryManagement.scala:89)
[error]     at sbt.util.Tracked$.$anonfun$inputChanged$1(Tracked.scala:149)
[error]     at sbt.internal.LibraryManagement$.cachedUpdate(LibraryManagement.scala:120)
[error]     at sbt.Classpaths$.$anonfun$updateTask$5(Defaults.scala:2561)
[error]     at scala.Function1.$anonfun$compose$1(Function1.scala:44)
[error]     at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:40)
[error]     at sbt.std.Transform$$anon$4.work(System.scala:67)
[error]     at sbt.Execute.$anonfun$submit$2(Execute.scala:269)
[error]     at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error]     at sbt.Execute.work(Execute.scala:278)
[error]     at sbt.Execute.$anonfun$submit$1(Execute.scala:269)
[error]     at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error]     at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error]     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error]     at java.lang.Thread.run(Thread.java:748)
[error] (update) sbt.librarymanagement.ResolveException: unresolved dependency: com.frugalmechanic#fm-sbt-s3-resolver;0.17.0: not found
1
vamsiampolu 8 फरवरी 2019, 04:11

2 जवाब

सबसे बढ़िया उत्तर

maven में फ्रूगलमैकेनिक समूह देख रहे हैं, ऐसा लगता है कि निम्नलिखित पोम मौजूद है:

fm-sbt-s3-resolver_2.12_1.0/0.17.0/fm-sbt-s3-resolver-0.17.0.pom
                  ^^^^^^^^^ this is scala version, and sbt version.

यह पथ सामान्य नहीं है जिसमें समूह आईडी और आर्टिफैक्ट आईडी पैकेज संस्करण शामिल है क्योंकि इसमें _2.12_1.0 है। इसका मतलब है कि प्लगइन को स्केला संस्करण 2.12, और एसबीटी संस्करण 1.0 के लिए लक्षित किया गया है।

इसलिए प्लगइन को निर्भरता के रूप में जोड़ते हुए, आपको Defaults.sbtPluginExtra() का उपयोग करना होगा और बताना होगा कि आपको विशिष्ट स्कैला संस्करण और प्लगइन संस्करण की आवश्यकता है, जैसा कि नीचे दिया गया है:

libraryDependencies += Defaults.sbtPluginExtra("com.frugalmechanic" % "fm-sbt-s3-resolver" % "0.17.0", "1.0", "2.12")

पहला तर्क पैकेज है, दूसरा तर्क sbt संस्करण है, और तीसरा तर्क scala संस्करण है।

2
ymonad 9 फरवरी 2019, 01:47

आप शायद addSbtPlugin चाहते हैं, इसलिए आपको स्कैला या एसबीटी संस्करण के बारे में चिंता करने की ज़रूरत नहीं है (इसे स्वचालित रूप से संभाला जाएगा):

addSbtPlugin("com.frugalmechanic" % "fm-sbt-s3-resolver" % "0.17.0")

यहाँ इसका एक अन्य SBT प्लगइन में उपयोग किए जाने का एक उदाहरण दिया गया है: fm-sbt-common के लिए निर्मित.sbt

0
tpunder 12 फरवरी 2019, 21:35