2016-03-23 14 views
0

このトピックに関する多くのソリューションを試しました。それらのすべての上に、SBTアセンブリが機能していません(有効なコマンドではありません)

sbt assembly command not found

は、最も関係が見えたが、それはそれを解決しませんでした。私は13.7

build.sbt SBT使用しています

lazy val commonSettings = Seq(
    organization := "com.example", 
    version := "0.1.0" 
) 

lazy val app = (project in file(".")). 
    settings(commonSettings: _*). 
    settings(
    name := "fat-jar-test" 
) 

assembly.sbt:

resolvers += Resolver.url("bintray-sbt-plugins", url("http://dl.bintray.com/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns) 

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

プロジェクト構造

私は正常にコンパイルSBTでは
root 
    | 
    src 
    target 
    project 
    | 
    build.sbt 
    assembly.sbt 

、私はsuccをパッケージ化することができます私はアセンブリコマンドを実行するとesfullyが、私は得る:

[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] 

私はのIntelliJを使用しますが、端末からのsbtを実行しています。
私はMac OSXを使用しています。
私はもともとsbtをダウンロードし、自分のサイトからインストールしました。通常のインストールです。私は削除し、差をつけずにmacportsからインストールしようとしました。
build.sbt設定でscalaバージョンがありましたが、エラーが発生し、2.11.xがsbtで動作しないため、削除しました。それはエラーを止めましたが、まだアセンブリの問題があります。

EDIT:

私は、この構造ではbuild.sbtの配置が不明でした。私がルートディレクトリに置かれる前に。下のローマの示唆で、私はそれをそこに戻しましたが、悲しいことに私はまったく同じエラーを受け取ります。

+0

どの 'plugins'コマンドが表示しますか? – Roman

+0

sbt.plugins.IvyPlugin:アプリ sbt.plugins.JvmPluginで有効:アプリ sbt.plugins.CorePluginで有効:アプリ sbt.plugins.JUnitXmlReportPluginで有効:アプリ – lbollar

答えて

3

プルアップ1レベルbuild.sbt。プロジェクトルートに存在する必要があります。projectではありません。

projectフォルダにある可能性がありますので別のことを意味します。いくつかの洞察のためにOrganizing Build文書を読んでください。

UPD:@mariosが示唆しているように、リゾルバをbuild.sbtに追加することもできますか。また、ビルドにはSNAPSHOTバージョンを設定することが重要です。あなたのbuild.sbtの全体の内容は、次のする必要があります。

scalaVersion in ThisBuild := "2.11.7" 

lazy val commonSettings = Seq(
    organization := "com.example", 
    version := "0.1.0-SNAPSHOT" 
) 

lazy val app = (project in file(".")). 
    settings(commonSettings: _*). 
    settings(
    name := "fat-jar-test" 
). 
    enablePlugins(AssemblyPlugin) 

resolvers in Global ++= Seq(
    "Sbt plugins"     at "https://dl.bintray.com/sbt/sbt-plugin-releases", 
    "Maven Central Server"   at "http://repo1.maven.org/maven2", 
    "TypeSafe Repository Releases" at "http://repo.typesafe.com/typesafe/releases/", 
    "TypeSafe Repository Snapshots" at "http://repo.typesafe.com/typesafe/snapshots/" 
) 

その後、root/projectフォルダに2つのファイルを追加:

sbt.version=0.13.7 

root/project/plugins.sbtもシングルが含まれています

root/project/build.propertiesは、単一の行が含まれています行:

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

今、の代わりにroot/project/assembly.sbtファイルを削除しても問題ありませんが、試してみましょう。この設定はいつでも有効です。

root 
    | 
    build.sbt 
    src 
    project 
    | 
    plugins.sbt 
    build.properties 

リロードSBTとpluginsコマンドを試してみてください。

今、あなたのプロジェクトのレイアウトは次のようにする必要があります。そこにはsbtassembly.AssemblyPluginが表示されます。

+0

で有効になって、私はこれを試みたが、それを変更しましたこれに戻る。正確に同じエラーです。私はこれを反映するために質問を編集します。 – lbollar

+0

この回答は正しいため、私は新しい住所を追加したくありません。あなたのbuild.sbtファイルはあなたのルートディレクトリの中にある必要があります。また、resolversステートメントは、build.sbt内にあり、プラグインsbtファイル内には存在しないはずです。 – marios

+0

@marios私もそれを試していましたが、あなたの提案でbuild.sbtに戻しました。これまでの組み合わせは機能していないので、同じエラーが発生します。 Romanは主な質問の下にあるコメントにプラグインの出力を求めました。それから、プラグインがリストにないように見えます。 – lbollar

関連する問題