1

/util-java/src/com/liferay/util/Normalizer.java を上書きする必要があります

gitでコードを見つけました。

私はこの指示に従い、アリクリーンを行うことができました

私はこれを読みました

.java ファイルを my-ext-plugin/docroot/WEB-INF/ext-util-java/com/liferay/util/Normalizer.java に置きました

アリビルド

  BUILD FAILED
`/liferay/plugins/liferay-plugins-sdk-6.1.0-ce-ga1/ext/build-common-ext.xml:122: The` following error occurred while executing this line:
/liferay/plugins/liferay-plugins-sdk-6.1.0-ce-ga1/ext/build-common-ext.xml:173: The following error occurred while executing this line:
/liferay/plugins/liferay-plugins-sdk-6.1.0-ce-ga1/build-common.xml:80: /liferay/plugins/liferay-plugins-sdk-6.1.0-ce-ga1/ext/normalizer-ext/docroot/WEB-INF/ext-service/src does not exist.

Normalizer.java の子を作成し、それらのプライベート メソッドを上書きするのが正しい方法であることはわかっていますが、それらのファイルをどこに置くべきか疑問に思っています。

これに関する情報が少ないことに驚きました。そして、すべての Liferay グルは、非常に単純であるかのように振る舞います。しかし、そうではありません。

アップデート

buld.username.properties

    app.server.dir = /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/tomcat-7.0.23
    ext.work.dir = /liferay/bundles
    app.server.zip = /liferay/portal/liferay-portal-tomcat-6.1.0-ce-ga1.zip

更新 2

ext-service/src フォルダーを作成し、BUILD SUCCESSFUL という報酬を受け取りました。

ant compileant deployは動作しています

url-redirect-fix-extは、ext プラグインの名前です。

[root@localhost url-redirect-fix-ext]# ant deploy
Buildfile: /liferay/plugins/liferay-plugins-sdk-6.1.0-ce-ga1/ext/url-redirect-fix-ext/build.xml

compile:

compile-with-global-class-loader:

compile-java:

compile-with-portal-class-loader:

compile-java:

compile-with-portal-class-loader:

compile-java:

compile-with-portal-class-loader:

compile-java:

compile-with-portal-class-loader:

compile-java:

war:

war-util:

war-util:

war-util:
   [delete] Deleting: /liferay/plugins/liferay-plugins-sdk-6.1.0-ce-ga1/dist/url-redirect-fix-ext-6.1.0.1.war
      [zip] Building zip: /liferay/plugins/liferay-plugins-sdk-6.1.0-ce-ga1/dist/url-redirect-fix-ext-6.1.0.1.war
   [delete] Deleting: /liferay/plugins/liferay-plugins-sdk-6.1.0-ce-ga1/ext/url-redirect-fix-ext/docroot/WEB-INF/ext-url-redirect-fix-ext.xml

deploy:
     [copy] Copying 1 file to /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/deploy

BUILD SUCCESSFUL

しかし、ant デプロイが機能しない

[root@localhost url-redirect-fix-ext]# ant build
Buildfile: /liferay/plugins/liferay-plugins-sdk-6.1.0-ce-ga1/ext/url-redirect-fix-ext
/build.xml

BUILD FAILED
Target "build" does not exist in the project "url-redirect-fix-ext". 

指示に従ってプラグインを展開し、サーバーを再起動しました。

これが私のTomcatログです。プラグインが正常にデプロイされたと思います。

15:36:18,815 INFO  [AutoDeployDir:167] Processing url-redirect-fix-ext-6.1.0.1.war
15:36:18,818 INFO  [ExtAutoDeployListener:43] Copying extension environment plugin for /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/deploy/url-redirect-fix-ext-6.1.0.1.war
  Expanding: /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/deploy/url-redirect-fix-ext-6.1.0.1.war into /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/tomcat-7.0.23/temp/20120605153618829
  Copying 1 file to /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/tomcat-7.0.23/temp/20120605153618829/WEB-INF
  Copying 1 file to /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/tomcat-7.0.23/temp/20120605153618829/WEB-INF/classes
  Copying 1 file to /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/tomcat-7.0.23/temp/20120605153618829/WEB-INF/classes
  Copying 1 file to /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/tomcat-7.0.23/temp/20120605153618829/WEB-INF
  Warning: WEB-INF/ext-impl/classes/com/liferay/portal/deploy/dependencies/ext-url-redirect-fix-ext-util-bridges.jar modified in the future.
  Warning: WEB-INF/ext-impl/classes/com/liferay/portal/deploy/dependencies/ext-url-redirect-fix-ext-util-java.jar modified in the future.
  Warning: WEB-INF/ext-impl/classes/com/liferay/portal/deploy/dependencies/ext-url-redirect-fix-ext-util-taglib.jar modified in the future.
  Warning: WEB-INF/ext-impl/ext-impl.jar modified in the future.
  Warning: WEB-INF/ext-service/ext-service.jar modified in the future.
  Warning: WEB-INF/ext-util-bridges/ext-util-bridges.jar modified in the future.
  Warning: WEB-INF/ext-util-java/ext-util-java.jar modified in the future.
  Warning: WEB-INF/ext-util-taglib/ext-util-taglib.jar modified in the future.
  Warning: WEB-INF/ext-web/docroot/WEB-INF/liferay-portlet-ext.xml modified in the future.
  Warning: WEB-INF/ext-web/docroot/WEB-INF/portlet-ext.xml modified in the future.
  Warning: WEB-INF/ext-web/docroot/WEB-INF/struts-config-ext.xml modified in the future.
  Warning: WEB-INF/ext-web/docroot/WEB-INF/tiles-defs-ext.xml modified in the future.
  Warning: WEB-INF/liferay-plugin-package.properties modified in the future.
  Warning: WEB-INF/ext-impl/classes modified in the future.
  Warning: WEB-INF/ext-impl/classes/com/liferay modified in the future.
  Warning: WEB-INF/ext-impl/classes/com/liferay/portal modified in the future.
  Warning: WEB-INF/ext-impl/classes/com/liferay/portal/deploy modified in the future.
  Warning: WEB-INF/ext-impl/src modified in the future.
  Warning: WEB-INF/ext-lib modified in the future.
  Warning: WEB-INF/ext-lib/global modified in the future.
  Warning: WEB-INF/ext-lib/portal modified in the future.
  Warning: WEB-INF/ext-service/classes modified in the future.
  Warning: WEB-INF/ext-service/src modified in the future.
  Warning: WEB-INF/ext-util-bridges modified in the future.
  Warning: WEB-INF/ext-util-bridges/classes modified in the future.
  Warning: WEB-INF/ext-util-bridges/src modified in the future.
  Warning: WEB-INF/ext-util-java modified in the future.
  Warning: WEB-INF/ext-util-java/classes modified in the future.
  Warning: WEB-INF/ext-util-java/com modified in the future.
  Warning: WEB-INF/ext-util-java/com/liferay modified in the future.
  Warning: WEB-INF/ext-util-java/com/liferay/util modified in the future.
  Warning: WEB-INF/ext-util-java/src modified in the future.
  Warning: WEB-INF/ext-util-taglib modified in the future.
  Warning: WEB-INF/ext-util-taglib/classes modified in the future.
  Warning: WEB-INF/ext-util-taglib/src modified in the future.
  Warning: WEB-INF/ext-web modified in the future.
  Warning: WEB-INF/ext-web/docroot modified in the future.
  Copying 8 files to /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/tomcat-7.0.23/webapps/url-redirect-fix-ext
  Copying 2 files to /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/tomcat-7.0.23/webapps/url-redirect-fix-ext
  Deleting directory /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/tomcat-7.0.23/temp/20120605153618829
15:36:19,062 INFO  [ExtAutoDeployListener:50] Extension environment for /liferay/bundles/liferay-portal-6.1.0-ce-ga1-new/deploy/url-redirect-fix-ext-6.1.0.1.war copied successfully. Deployment will start in a few seconds.
Jun 5, 2012 3:36:25 PM org.apache.catalina.startup.HostConfig checkResources
INFO: Reloading context [/url-redirect-fix-ext]
15:36:25,612 INFO  [PluginPackageUtil:1099] Reading plugin package for url-redirect-fix-ext
15:36:25,618 INFO  [ExtHotDeployListener:226] Extension environment for url-redirect-fix-ext will not be undeployed
15:36:26,090 INFO  [PluginPackageUtil:1099] Reading plugin package for url-redirect-fix-ext
15:36:26,133 INFO  [ExtHotDeployListener:234] Registering extension environment for url-redirect-fix-ext
15:36:26,133 INFO  [ExtHotDeployListener:152] Extension environment for url-redirect-fix-ext has been applied.

動作していません。私のポータルにはまだバグがあります。

つまり、Git で見つけた解決策が私のバグを処理しなかったか、新しい Normalizer.java が古い Normalizer.class をオーバーライドしなかったかのどちらかです。

どうすれば確信できますか?

更新 3

アリ展開

ERROR [ExtHotDeployListener:189] Extension environment for normalizer-ext cannot be applied because of detected conflicts:
url-redirect-fix-ext:
    ext-util-java/com/liferay/util/Normalizer.java
    ext-web/docroot/WEB-INF/liferay-portlet-ext.xml
    ext-web/docroot/WEB-INF/portlet-ext.xml
    ext-web/docroot/WEB-INF/struts-config-ext.xml
    ext-web/docroot/WEB-INF/tiles-defs-ext.xml
    ext-web/docroot/WEB-INF/web.xml
4

1 に答える 1

1

util-java からコードを変更し、util-bridges に入れますか? ext-util-java に入れてみてください。これを呼び出すことに関連するスプリングの自動配線はないようで、そのクラスには静的メソッドしかないため、おそらく既存のコードをコピーして、必要に応じてパッチを適用してからコンパイルする必要があります。

編集/追加:

エラー メッセージから、 http ://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/creating-an-ext-plugin の次の段落にあまりにも従ったように見えます。

ヒント: Ext プラグインを作成したら、デフォルトで追加された、拡張機能に不要なすべてのファイルを削除します。Liferay は各 Ext プラグインによってデプロイされたファイルを追跡し、衝突を避けるために同じファイルをオーバーライドする場合、2 つの Ext プラグインのデプロイを許可しないため、これは重要です。ext プラグインから不要なファイルを削除することで、他の Ext プラグインと一緒に使用しやすくなります。

ディレクトリではなく、プラグイン内の不要なファイルのみを削除する必要があります。あなたが述べたエラーメッセージは、

normalizer-ext/docroot/WEB-INF/ext-service/src が存在しません

編集2:

あなたの最新の編集では、「ant deploy」が機能していないと言っていますが、実際に実行するコマンドは「ant build」です.antは「build」ターゲットが見つからないと不平を言っています。「ant deploy」で再試行してください

編集3:

これは Q&A というよりインタラクティブなデバッグ セッションです :-)

ext プラグインはいくつでも持つことができますが、すべてのファイルは 1 つの ext プラグインでのみオーバーライド (包含) できます。エラー メッセージは、何が問題なのかを示しています。ビルド プロセスで問題が発生しているファイルは、異なる ext-plugins から変更されています。そのため、引用 (上記の私の回答の「ヒント」セクションを参照) で、本当に必要でない限りファイルをプラグインから削除して上書きするように指示されています。ビルド プロセスが不平を言っているファイルは、まさに create-script が ext プラグインを自動的に開始するファイルです。

于 2012-06-05T12:02:58.503 に答える