5

開発モードで正しく実行されているGrailsプロジェクトがありますが、warファイルを作成しようとすると、次のメッセージが表示され、ビルドが停止します

| Compiling 1 source files
| Compiling 1 source files.
| Compiling 1 source files..
| Compiling 1 source files...
| Compiling 1 source files....
| Compiling 1 source files.....
| Compiling 16 GSP files for package [ProjectName]
| Compiling 16 GSP files for package [ProjectName].
| Error Compilation error: encoded string too long: 108421 bytes

Grailsは、どのGSPまたは回線に問題があるかについて、他の情報を教えてくれません。これが起こっているのを見た人はいますか?

これがgrailsの統計です。かなり小さなプロジェクトだと思います。

+----------------------+-------+-------+
| Name                 | Files |  LOC  |
+----------------------+-------+-------+
| Controllers          |     6 |   624 | 
| Domain Classes       |     6 |   109 | 
| Java Helpers         |     1 |    96 | 
| Unit Tests           |    12 |   565 | 
| Scripts              |     1 |     4 | 
+----------------------+-------+-------+
| Totals               |    26 |  1398 | 
+----------------------+-------+-------+
4

3 に答える 3

3

これは2.3.7より前 のバージョンのGrailsバグのようですが、2.3.7以降で修正されています。アップグレードするか、以下の手順に従う2つのオプションがあります

  1. ファイルサイズが64Kを超えるすべてのgspページを検索します。
  2. <%/ *コメントを追加して、静的gspブロックを分割します* /%>静的ページの中央に追加します(たとえば、htmlタグの最後に追加します</P>)。

これにより、grailsは2つのチャンクを処理していると見なし、処理できるようになります。

于 2014-11-19T20:37:16.813 に答える
1

私は前にこれを見たことがあります。まさに@tim_yatesがコメントしたものです!いくつかのgsp[たとえば含む]をリファクタリングし、すべてが再び良かった。また、これについて少し調べてみると、DataOutputStream.javaについていくつか興味深いことがわかりました。Stringオブジェクトには64kbの制限があるようです。

多分これもあなたを助けることができます。

乾杯!

于 2012-06-12T18:46:45.803 に答える
0

問題が何であるかはわかりませんでした。必要なすべてのファイルを新しいプロジェクトに移動するだけで、このエラーは解消されました。

于 2012-08-09T05:10:31.480 に答える