2016-03-13 31 views
0

sbt版本是0.13.9和斯卡拉2.11.7 /我知道以前版本的sbt依賴於scala 2.10 - 是這樣嗎?我有我添加到項目目錄中的文件assembly.sbt(按照SBT裝配說明此版本的SBT組裝的)一個Java項目:試圖使用sbt程序集

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.2") 

我跑SBT重載/清潔以及編譯。然而,當我嘗試運行組裝,我得到以下異常:

> assembly 
[error] Not a valid command: assembly 
[error] Not a valid project ID: assembly 
[error] Expected ':' (if selecting a configuration) 
[error] Not a valid key: assembly 
[error] assembly 
[error]  ^

什麼步驟(多個)我失蹤之前,我可以利用我的SBT Java項目創建一個可運行的jar?

如果需要的話,我可以設置合併策略,但是當我嘗試使用該策略時,我收到了一個不同的異常。任何有用的建議將是非常受歡迎的。

更新

我創造了在錯誤的位置assemly.sbt文件。當我把assembly.sbt文件在同一目錄中build.sbt,跑重裝/編譯,我得到了以下錯誤:

[trace] Stack trace suppressed: run last *:update for the full output. 
    [error] (*:update) sbt.ResolveException: unresolved dependency: com.eed3si9n#sbt-assembly;0.14.2: not found 
    [error] Total time: 2 s, completed Mar 13, 2016 3:20:02 PM 

**running with last *:update** 
[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes. 
[warn]  com.eed3si9n:sbt-assembly:0.14.2 (scalaVersion=2.11, sbtVersion=0.13) 
[warn] 
[warn] Note: Unresolved dependencies path: 
[warn]  com.eed3si9n:sbt-assembly:0.14.2 (scalaVersion=2.11, sbtVersion=0.13) (/home/me/test-server/assembly.sbt#L1-2) 
[warn]  +- com.test:test-server_2.11:1.0.0 
sbt.ResolveException: unresolved dependency: com.eed3si9n#sbt-assembly;0.14.2: not found 
    at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:294) 
    at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:191) 
    at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:168) 
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:155) 
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:155) 
    at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:132) 
    at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:57) 
    at sbt.IvySbt$$anon$4.call(Ivy.scala:65) 
    at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:93) 
    at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:78) 
    at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:97) 
    at xsbt.boot.Using$.withResource(Using.scala:10) 
    at xsbt.boot.Using$.apply(Using.scala:9) 
    at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58) 
    at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48) 
    at xsbt.boot.Locks$.apply0(Locks.scala:31) 
    at xsbt.boot.Locks$.apply(Locks.scala:28) 
    at sbt.IvySbt.withDefaultLogger(Ivy.scala:65) 
    at sbt.IvySbt.withIvy(Ivy.scala:127) 
    at sbt.IvySbt.withIvy(Ivy.scala:124) 
    at sbt.IvySbt$Module.withModule(Ivy.scala:155) 
    at sbt.IvyActions$.updateEither(IvyActions.scala:168) 
    at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1392) 
    at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1388) 
    at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$90.apply(Defaults.scala:1422) 
    at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$90.apply(Defaults.scala:1420) 
    at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:37) 
    at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1425) 
    at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1419) 
    at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:60) 
    at sbt.Classpaths$.cachedUpdate(Defaults.scala:1442) 
    at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1371) 
    at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1325) 
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) 
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40) 
    at sbt.std.Transform$$anon$4.work(System.scala:63) 
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226) 
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226) 
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17) 
    at sbt.Execute.work(Execute.scala:235) 
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226) 
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226) 
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159) 
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
[error] (*:update) sbt.ResolveException: unresolved dependency: com.eed3si9n#sbt-assembly;0.14.2: not found 

項目結構 我會在以後添加截圖。現在,請忍受我。

我試圖在項目子目錄內創建assembly.sbt文件 - 它沒有工作。然後我將它添加到相同項目子目錄內的plugins.sbt。當它不起作用時,我將assembly.sbt和plugin.sbt複製到項目的根目錄中,但它沒有解決問題。

工程目錄:測試服務器 我已經加入assembly.sbt和build.sbt內/測試服務器 我自己也嘗試將它添加TI /測試服務器/項目

但是都沒有成功。我有理由相信我在做錯某些事情或者在配置中丟失了某些東西。請分享您的想法,以解決問題需要採取的措施。

assembly.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.2") 
+1

'assembly.sbt'文件在哪裏?當它放在'project/assembly.sbt'位置時它會起作用嗎?您是否嘗試添加新文件,只需將'addSbtPlugin(「com.eed3si9n」%「sbt-assembly」%「0.14.2」)'添加到現有的'project/plugins.sbt'文件中? – marcospereira

+0

我會在一分鐘內添加一篇文章的更新 - 謝謝 –

+0

也許我需要將scala版本添加到assembly.sbt文件中? –

回答

1

問題是由於我assembly.sbt文件錯字。 assembly.sbt文件需要位於項目子目錄內,即如果項目根目錄是test-server,則需要將assembly.sbt文件放入test-server/project子目錄中。

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.2")