maven - 在 SBT 中添加 HornetQ 依赖会导致 hornetq-native.${native-package-type} 解析失败

标签 maven sbt hornetq

我使用 SBT 0.13.1 .

当我添加 HornetQ 作为我的依赖项时:

libraryDependencies += "org.hornetq" % "hornetq-server" % "2.4.1.Final"

sbt 在下面抛出异常。

我想要的是让 SBT 解析 org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.jar但不是 org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.${native-package-type} .

这是一个 SBT 错误还是我可以/应该指定一些属性来让它运行?
[error] (*:update) sbt.ResolveException: download failed: org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.${native-package-type}
[info] Updating {file:/Users/my/workhome/dev/scala-learn/}scala_learn...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn]  [FAILED     ] org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.${native-package-type}:  (0ms)
[warn] ==== local: tried
[warn]   /Users/my/.ivy2/local/org.hornetq/hornetq-native/2.4.1.Final/${native-package-type}s/hornetq-native.${native-package-type}
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/org/hornetq/hornetq-native/2.4.1.Final/hornetq-native-2.4.1.Final.${native-package-type}
[warn] ==== 99-empty: tried
[warn]   http://version99.qos.ch/org/hornetq/hornetq-native/2.4.1.Final/hornetq-native-2.4.1.Final.${native-package-type}
[warn] ==== Local Maven Repository: tried
[warn]   file:///Users/my/.m2/repository/org/hornetq/hornetq-native/2.4.1.Final/hornetq-native-2.4.1.Final.${native-package-type}
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::              FAILED DOWNLOADS            ::
[warn]  :: ^ see resolution messages for details  ^ ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.${native-package-type}
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
sbt.ResolveException: download failed: org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.${native-package-type}
    at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:213)
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:122)
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:121)
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:116)
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:116)
    at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:104)
    at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:51)
    at sbt.IvySbt$$anon$3.call(Ivy.scala:60)
    at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:98)
    at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:81)
    at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:102)
    at xsbt.boot.Using$.withResource(Using.scala:11)
    at xsbt.boot.Using$.apply(Using.scala:10)
    at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:62)
    at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:52)
    at xsbt.boot.Locks$.apply0(Locks.scala:31)
    at xsbt.boot.Locks$.apply(Locks.scala:28)
    at sbt.IvySbt.withDefaultLogger(Ivy.scala:60)
    at sbt.IvySbt.withIvy(Ivy.scala:101)
    at sbt.IvySbt.withIvy(Ivy.scala:97)
    at sbt.IvySbt$Module.withModule(Ivy.scala:116)
    at sbt.IvyActions$.update(IvyActions.scala:121)
    at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1161)
    at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1159)
    at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$73.apply(Defaults.scala:1182)
    at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$73.apply(Defaults.scala:1180)
    at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:35)
    at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1184)
    at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1179)
    at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:45)
    at sbt.Classpaths$.cachedUpdate(Defaults.scala:1187)
    at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1152)
    at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1130)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
    at sbt.std.Transform$$anon$4.work(System.scala:64)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:244)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
[error] (*:update) sbt.ResolveException: download failed: org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.${native-package-type}
[error] Failed to obtain dependency classpath
java.lang.IllegalArgumentException
    at org.sbtidea.SbtIdeaModuleMapping$LibrariesExtractor.managedLibraries(SbtIdeaModuleMapping.scala:42)
    at org.sbtidea.SbtIdeaModuleMapping$LibrariesExtractor.allLibraries(SbtIdeaModuleMapping.scala:31)
    at org.sbtidea.SbtIdeaPlugin$.projectData(SbtIdeaPlugin.scala:220)
    at org.sbtidea.SbtIdeaPlugin$$anonfun$2.applyOrElse(SbtIdeaPlugin.scala:88)
    at org.sbtidea.SbtIdeaPlugin$$anonfun$2.applyOrElse(SbtIdeaPlugin.scala:87)
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33)
    at scala.collection.TraversableLike$$anonfun$collect$1.apply(TraversableLike.scala:278)
    at scala.collection.immutable.Map$Map1.foreach(Map.scala:109)
    at scala.collection.TraversableLike$class.collect(TraversableLike.scala:278)
    at scala.collection.AbstractTraversable.collect(Traversable.scala:105)
    at org.sbtidea.SbtIdeaPlugin$.doCommand(SbtIdeaPlugin.scala:87)
    at org.sbtidea.SbtIdeaPlugin$$anonfun$org$sbtidea$SbtIdeaPlugin$$ideaCommand$2.apply(SbtIdeaPlugin.scala:45)
    at org.sbtidea.SbtIdeaPlugin$$anonfun$org$sbtidea$SbtIdeaPlugin$$ideaCommand$2.apply(SbtIdeaPlugin.scala:45)
    at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:60)
    at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:60)
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:62)
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:62)
    at sbt.Command$.process(Command.scala:95)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:100)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:100)
    at sbt.State$$anon$1.process(State.scala:179)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:100)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:100)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.MainLoop$.next(MainLoop.scala:100)
    at sbt.MainLoop$.run(MainLoop.scala:93)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:71)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:66)
    at sbt.Using.apply(Using.scala:25)
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:66)
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:49)
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:33)
    at sbt.MainLoop$.runLogged(MainLoop.scala:25)
    at sbt.StandardMain$.runManaged(Main.scala:57)
    at sbt.xMain.run(Main.scala:29)
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:57)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:77)
    at xsbt.boot.Launch$.run(Launch.scala:57)
    at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:45)
    at xsbt.boot.Launch$.launch(Launch.scala:65)
    at xsbt.boot.Launch$.apply(Launch.scala:16)
    at xsbt.boot.Boot$.runImpl(Boot.scala:32)
    at xsbt.boot.Boot$.main(Boot.scala:21)
    at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.IllegalArgumentException
[error] Use 'last' for the full log.

最佳答案

正如 Gradle 用户在 http://forums.gradle.org/gradle/topics/gradle_fails_to_parse_a_org_hornetq_hornetq_native_2_4_0_final_pom 中所报告的,这似乎是 HornetQ 中的一个错误(或至少是破坏构建工具的 Maven 功能)。 :

It seems, Gradle does not expand the property ${native-package-type} defined at the pom bottom when downloading the artifact.



It's buried in pom.xml .

解决方法 build.sbt 中使用以下内容:
libraryDependencies += "org.hornetq" % "hornetq-server" % "2.4.1.Final" 

libraryDependencies += "org.hornetq" % "hornetq-native" % "2.4.1.Final" from "http://repo1.maven.org/maven2/org/hornetq/hornetq-native/2.4.1.Final/hornetq-native-2.4.1.Final.jar"

它对我有用。

关于maven - 在 SBT 中添加 HornetQ 依赖会导致 hornetq-native.${native-package-type} 解析失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21882100/

相关文章:

maven - 使用 Gradle 构建 Maven 插件

java - 将现有 JNDI HornetQ 服务设为 HA 的步骤?

hornetq - 从另一个系统连接到 horneQ

java - 自定义控制台输出 - Surefire 插件

java - Maven依赖收敛

java - 如何在maven项目中实现hadoop的源码?

scala - 构建.sbt : exclude dependencies from dependsOn submodule

scala - 如何将 Jar 库添加到 IntelliJ Idea SBT Scala 项目?

scala - 使用 SBT,我怎样才能有两个不同设置的不同 proguard 任务?

java - 用spring配置集群hornetq客户端