2012-06-26 23 views
15

Grails 2.0.4プロジェクトで使用したいJava/Mavenプロジェクトがいくつかあります。私の地元のMavenリポジトリにJARファイルのインストール、とGrailsのlibフォルダにJARファイルをコピーするgrails install-dependency com.foo:my-project:0.0.1-SNAPSHOT Java JARファイルをGrailsプロジェクトに追加するには?

  • を実行

    1. :私は、次のような様々なアプローチを試してみました。
    2. BuildConfig.groovy
    3. コメントアウトmavenLocal()の依存関係セクションにcompile com.foo:my-project:0.0.1-SNAPSHOTを追加し、私はそのようなsuperstitiously grails cleanたびに便利に投げるように、いくつかの他のものを試みたことがあり/home/me/.m2/repository

    を渡します。いずれの場合も、grails compileは次の結果をもたらします。コンパイルが失敗し、いずれかのJARのいずれかのクラスへのすべての参照を解決できません。

    私が迷っているものは何ですか?

  • +1

    これらのオプションのいずれかが必要があるのであなたはJARのクラスをJavaの新しいバージョンでコンパイルすることはありませんでした。私はPostgreSQLドライバのjarファイルで同様の問題に遭遇しましたが、それが原因です。 – proflux

    +3

    jarファイルに欠落しているクラスが 'jar tf lib.jar | grep mypackage.MyClass'? – ataylor

    +2

    私は過去にこのようなことに巻き込まれました...私が使っていたクラスを「インポート」することを忘れてしまった。 – cdeszaq

    答えて

    16

    libフォルダにjarファイルを置くことはすべきことです。私たちは現在問題なく同じアプローチを使用しています。

    +4

    um ...きれいにして、もう一度試してみてください。 –

    +0

    デフォルトの 'lib'フォルダはGrails 3.0の時点ではなくなりました。 http://grails.github.io/grails-doc/3.0.x/guide/single.html#upgrading - >「JARファイルを解決するために依存関係の解決を使用する必要があります」 –

    6

    「lib」フォルダにjarファイルを追加するだけでは不十分でした。私は走らなければならなかった:

    grails compile --refresh-dependencies 
    

    それが働いた後。

    0

    Grailsのリフレッシュ依存性、クリーンなどは私のためには機能しませんでした。私のために働いたのは、Grailsデーモンを終了し、Grailsを再び起動することでした。

    4

    デフォルトでGrailsの<GRAILS-APP-DIR>/libにあるローカルの.jarライブラリを取らない場合は、それを強制するための簡単な方法が変更された(Grailsの3.X/libフォルダのデフォルトの設定が削除されたようです) build.gradleを使用して、ローカルディレクトリの依存関係を追加します。

    もちろんほとんどの場合、maven reposを使用する方が良いですが、db-vendor-driversやその他のパブリックリポジトリにはないライブラリがある可能性があります。あなたはそれを指定しているので、あなたは別のディレクトリ(ない/lib)を使用することができますしたい場合は

    dependencies { 
        ... 
        compile fileTree(dir: './lib', include: ['*.jar']) 
        ... 
    } 
    

    :このライブラリのようなものを<GRAILS-APP-DIR>/build.gradleを変更し、追加のためにそうしてください。もちろん

    はそれが役に立てば幸い、(スコープはruntime代わりのcompileになりますおそらく既にあなたのアプリケーションのコンテナクラスパスにあるdb-vendor-drivers用など)の正しいスコープを使用本当に奇妙だ

    +0

    私はあなたがそのように慎重に古代の質問に答えます。私はこれが誰かを助けてくれることを願っていますが、評価するつもりはありません。私は3年以上でGrailsをやっていない。 –

    +3

    @EricWilson私は 'Grails'を最初に試しています...この質問には答えがありますが、それはどのように動作するのか説明できません。だから私は単にそれがどのように機能するかについて主張しようとする。私があなたが答えをチェックしているのを見ていないことを心配しないでください: ')、私はそれが誰かを助けるならば投稿します。 – albciff

    関連する問題