我需要覆盖/util-java/src/com/liferay/util/Normalizer.java
我在git找到了代码。
我关注this instructions并且能够执行 ant clean
我看了this
将我的.java文件放入my-ext-plugin / docroot / WEB-INF / ext-util-java / com / liferay / util / Normalizer.java
ant build
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 compile 和 ant 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 deploy 无法正常工作
[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.
不工作。我的门户网站仍有bug。
所以我在Git上发现的解决方案没有处理我的错误 或者新的Normalizer.java没有覆盖旧的Normalizer.class
我怎么能确定?
更新3
ant deploy
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
答案 0 :(得分: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一起使用 插件。
您应该仅删除插件中不需要的文件 - 而不是目录。您声明的错误消息说
normalizer-ext / docroot / WEB-INF / ext-service / src不存在
编辑2:
在你的最新编辑中,你说“ant deploy”不起作用,但你实际执行的命令是“ant build” - 蚂蚁抱怨没有找到“build”目标。再试一次“ant deploy”
编辑3:
这是一个交互式调试会话,而不是Q& A: - )
您可以拥有任意数量的ext插件,但每个文件只能在一个ext插件中被覆盖(包含)。错误消息告诉您错误:构建过程抱怨的文件是从不同的ext-plugins修改的。这就是为什么引用(参见上面的答案,“提示”部分)说从你的插件中删除文件,除非你真的需要和覆盖它们。构建过程抱怨的文件正是create-script自动启动ext插件的文件。