1

私は Grails 1.3.6 を使用していましたが、戦争を展開するときにコンテキスト ローダーに問題がありました。run-app ではうまくいきましたが、run-war や war ではうまくいきませんでした。

アイデアが尽きてしまったので、Grails を 2.1.1 に更新することで解決できるのではないかと考えましたが、自分自身にさらに深い穴を掘っただけです。

プラグインはランダムに出入りするようです。STS を終了して再起動するたびに、別のプラグイン セットが取得されます。それらをインストールしてもインストールされず、マネージャーまたはコマンドラインを介してアンインストールしてもアンインストールされません。たとえば、jquery を 1.8.3 に数回アップグレードしましたが、プロジェクトのプラグインの下にまだ jquery 1.8.0 が表示されます。プラグインをアンインストールした後もプラグインの下に表示されますが、再度アンインストールすると、インストールされていないためアンインストールできないと表示されます。

主な問題は軽快でした。何をしても、私のアプリケーションは grails.plugins.nimble.core.ProfileBase や、nimble プラグインの一部であるその他のクラスを解決できません。

したがって、テストケースとして軽快に使用する:

私のプロジェクト エクスプローラーでは、プラグイン フォルダーに「nimble 0.4-SNAPSHOT」が含まれています。

application.properties には、「plugins.nimble=0.4-SNAPSHOT」という行があります。

~/.grails/2.1.1/projects/MyProject/plugins には、ソース コードを含む nimble-0.4-SNAPSHOT フォルダーが存在します。

.../myProject/lib には、「nimble-0.4-SNAPSHOT.jar」と「nimble-0.4-SNAPSHOT.zip」の両方があります。これは、さまざまな時点で jar または zip を探していたためです。拡張子を .zip から .jar に変更しました。

Grails Plugin Manager では、nimble に緑色のチェックマークがあり、インストールされていることを示しています。

私の BuildConfig.groovy ファイルはストックされており、変更されていません (さまざまなことを試しましたが、元の設定に戻しました) が、楽しみのためにここに含まれています。

grails.servlet.version = "2.5" // Change depending on target container compliance (2.5 or 3.0)
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.target.level = 1.6
grails.project.source.level = 1.6
//grails.project.war.file = "target/${appName}-${appVersion}.war"

grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
    // specify dependency exclusions here; for example, uncomment this to disable ehcache:
    // excludes 'ehcache'
}
log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
checksums true // Whether to verify checksums on resolve

repositories {
    inherits true // Whether to inherit repository definitions from plugins

    grailsPlugins()
    grailsHome()
    grailsCentral()

    mavenLocal()
    mavenCentral()

    // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
    //mavenRepo "http://snapshots.repository.codehaus.org"
  // mavenRepo "http://repository.codehaus.org"
   // mavenRepo "http://download.java.net/maven/2/"
   // mavenRepo "http://repository.jboss.com/maven2/"
}
dependencies {
    // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.

    // runtime 'mysql:mysql-connector-java:5.1.20'
}

plugins {
    runtime ":hibernate:$grailsVersion"
    runtime ":jquery:1.8.0"
    runtime ":resources:1.1.6"
    //build ":nimble:0.4-SNAPSHOT"

    // Uncomment these (or add new ones) to enable additional resources capabilities
    //runtime ":zipped-resources:1.0"
    //runtime ":cached-resources:1.0"
    //runtime ":yui-minify-resources:0.1.4"

    build ":tomcat:$grailsVersion"

    runtime ":database-migration:1.1"

    compile ':cache:1.0.0'
}

}

では、なぜ私のアプリケーションは軽快さを認識していないのでしょうか? 「クリーン」、「依存関係の更新」、「コンパイル」、および可能な限りの組み合わせでの再起動を試みましたが、無駄でした。

Grails 1.3.6 から 2.1.1 へのアップグレードが完全に、または正しく行われていないことと関係があるに違いないと思います。

ありがとうございました。

4

1 に答える 1

1

1.3.6 から 2.1.1 への変更は大きな一歩です。私がリストを読んで今考えられるのは次のとおりです。

  • アプリに多くのコードがない場合は、新しい新しいプロジェクトを作成してソースをコピーすることをお勧めします。
  • BuildConfig.groovy は現在、依存関係を宣言する方法です。これを install-plugin の代わりに使用してください (おそらく、これが原因でプロジェクトが狂ってしまいます)

新しいフレッシュなプロジェクトを作成し、ファイルをコピーできない場合は、小さな手順を試してください (grails 1.3.7、2.0.4、2.1.1 の順に進んでください)。

于 2012-11-21T02:29:22.770 に答える