لا يمكن لـ GWT ClientBundle العثور على الصور
سؤال
يعمل ClientBundle بشكل جيد في مشروعي الرئيسي: com.example.project.client.Bundle
يجمع عميل آخر في مكتبتي في جرة على ما يرام: com.example.library.client.Bundle
تجميع مشروعي عندما يعتمد ذلك على المكتبة فشل:
[ERROR] Errors in 'jar:file:/C:/work/library.jar!/com/example/library/client/Bundle.java'
[ERROR] Line 10: Failed to resolve 'com.example.library.client.Bundle' via deferred binding
لقد راجعت جرة المكتبة ، وملفات الصور موجودة في /com/example/library/client/
كما كانوا في مصدر المكتبة. هل هناك بعض الخدعة؟ لقد حاولت الرجوع إلى الصور مع @ClientBundle.Source("com/example/library/client/icon.gif")
و @ClientBundle.Source("icon.gif")
, ، وكلاهما يسمح للمكتبة بتجميع الملف ، ولكن يفشل عند تجميع المشروع اعتمادًا.
المحلول
يبدو أنه كان خطأي. كنت أشير إلى icon.gif ولكن في الواقع كان لدي أيقونة. في نظام الملفات. خطأ مطبعي بسيط.
كان خطأي الكبير هو الخلط بين خطوات التجميع. عندما يكون لديك مكتبة GWT ، وتجميعها في جرة ، فأنت ليس القيام بتجميع GWT. لذلك أنت لا تتحقق بالفعل من أي من تعليقات ClientBundle. لا يحدث هذا التحقق حتى يقوم مشروع الاعتماد بتجميع GWT الكامل (وهذا هو المكان الذي فشل فيه)