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

但是蚂蚁部署不起作用

[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 插件部署的文件,如果两个 Ext 插件覆盖同一文件以避免冲突,它将不允许部署两个 Ext 插件。通过从 ext 插件中删除任何不需要的文件,它将更容易与其他 Ext 插件一起使用。

您应该删除插件中不需要的文件,而不是目录。您声明的错误消息说

normalizer-ext/docroot/WEB-INF/ext-service/src 不存在

编辑2:

在您的最新编辑中,您说“ant deploy”不起作用,但您实际执行的命令是“ant build”——ant 抱怨找不到“build”目标。用“ant deploy”再试一次

编辑3:

这更像是一个交互式调试会话而不是问答 :-)

您可以拥有任意数量的 ext 插件,但每个文件只能在一个 ext 插件中覆盖(包含)。错误消息告诉您出了什么问题:构建过程抱怨的文件是从不同的 ext-plugins 修改的。这就是为什么引用(请参阅上面我的回答,“提示”部分)说要从插件中删除文件,除非你真的需要并覆盖它们。构建过程抱怨的文件正是 create-script 自动启动 ext 插件的文件。

于 2012-06-05T12:02:58.503 回答