2010-08-02 74 views
1

在Liferay ext build-parent.xml中有一个执行java的目标build-webxml。不幸的是,这个目标没有完成。完成后ant java执行挂起

我调试的代码和主要方法完成。但是直接在java之后的回声仍然没有被执行。它只是挂在年底

当我按Ctrl + C,然后它打印出

[java] Java Result: 1 
[echo] web.xml files merged 

如果我添加菌种=“真”,那么它完成,但我不喜欢这样。 任何想法可能会导致这种情况,我该如何完成?

Apache Ant的版本1.8.1和JVM打造1.5.0_17-B04

目标如下:

<target name="build-webxml"> 
    <java 
     classname="com.liferay.portal.tools.WebXMLBuilder" 
     classpathref="project.classpath" 
     fork="true" 
     newenvironment="true" spawn="false" resultproperty="web.xml.build.success" 
    > 
     <jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" /> 
     <!-- -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n --> 
     <arg value="tmp/WEB-INF/web.xml.original" /> 
     <arg value="docroot/WEB-INF/web.xml" /> 
     <arg value="tmp/WEB-INF/web.xml" /> 
    </java> 
    <echo message="web.xml files merged"/> 
</target> 

我发现,我在这里描述了同样的问题:http://www.liferay.com/community/forums/-/message_boards/message/4931689

而且还是我没有办法

回答

0

意味着Java类com.liferay.portal.tools.WebXMLBuilder是多线程的,其中一个线程仍在后台运行。

spawn =“true”有效,因为ANT jvm不会等待子进程完成。与CTRL-C类似,因为您发送信号来终止进程。

+0

它不是多线程的。您可以在这里看到源代码: http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portal/tools/WebXMLBuilder.java.html 它读取和写入一些文件磁盘。这可能是一个问题吗? – Priit 2010-08-19 11:39:59

+0

可能。 我试图追溯代码,但看不到你正在使用的FileUtil类的实现。请参阅http://docs.liferay.com/portal/5.1/javadocs/portal-kernel/com/liferay/portal/kernel/util/FileUtil.java.html 单独运行代码时可以重现问题吗没有ANT? – 2010-08-19 22:49:31