【发布时间】:2011-07-10 23:26:15
【问题描述】:
当我尝试使用 javac 任务编译时。我在控制台中没有得到任何东西。以前,我得到了一些关于我正在编译的信息,例如 [javac] ".... "
什么时候,我清理并重新编译它工作,我可以看到输出,但是当我再次编译时出现问题。
同样,这个问题以前不存在。这个问题让tomcat抱怨它说“ZipException:oversubscribed literal/length tree”的.war文件
谁能指导我解决这个问题?
编辑:这是 ant 脚本的相关部分
<javac destdir="${build.dir}" source="1.6" target="1.6" debug="true" deprecation="false" optimize="false" failonerror="true">
<src path="${src.dir}" />
<classpath refid="master-classpath" />
</javac>
请注意:以前在相同的文件上效果很好。现在不改变项目内部的任何东西它不起作用
请注意:我有正在运行的项目,并且已将其存档。它编译得很完美,我什至把存档文件给了一些人,它正在和他们一起工作。然后,我做了一些修改,直到我得到 ZipException。 之后,我保留了修改并使用了正在工作的旧存档文件,但我仍然收到相同的错误 ZipException。因此,问题绝对不是源代码或 ant 脚本。我认为这是我的环境中的一个问题,但我无法弄清楚出了什么问题。
build.xml 文件如下:
<?xml version="1.0"?>
<!DOCTYPE project>
<project name="GameServerPart1" basedir="." default="usage">
<property file="../build.properties" />
<property name="src.dir" value="src/main/java" />
<property name="web.dir" value="war" />
<property name="build.dir" value="${web.dir}/WEB-INF/classes" />
<property name="name" value="GameServerPart1" />
<path id="master-classpath">
<fileset dir="src/main/webapp/WEB-INF/lib">
<include name="*.jar" />
</fileset>
<!-- We need the servlet API classes: -->
<!-- * for Tomcat 5/6 use servlet-api.jar -->
<!-- * for other app servers - check the docs -->
<!--<fileset dir="${appserver.lib}">
<include name="servlet*.jar"/>
</fileset> -->
<pathelement path="${build.dir}" />
</path>
<target name="usage">
<echo message="" />
<echo message="${name} build file" />
<echo message="-----------------------------------" />
<echo message="" />
<echo message="Available targets are:" />
<echo message="" />
<echo message="build --> Build the application" />
<echo message="deploy --> Deploy application as directory" />
<echo message="deploywar --> Deploy application as a WAR file" />
<echo message="cleanr --> clean the build." />
<echo message="" />
</target>
<target name="clean">
<delete dir="${web.dir}" />
</target>
<target name="build" description="Compile main source tree java files">
<mkdir dir="${build.dir}" />
<copy todir="${web.dir}/WEB-INF/">
<fileset dir="src/main/webapp/WEB-INF/">
<include name="**/*.*" />
</fileset>
<filterchain>
<striplinecomments>
<comment value="!" />
</striplinecomments>
<replacetokens>
<token key="hibernate.connection.url" value="${hibernate.connection.url}" />
<token key="hibernate.connection.username" value="${hibernate.connection.username}" />
<token key="hibernate.connection.password" value="${hibernate.connection.password}" />
<token key="fontFamily" value="arial, helvetica, sans-serif" />
</replacetokens>
</filterchain>
</copy>
<copy todir="${build.dir}">
<fileset dir="src/main/resources">
<include name="**/*.*" />
</fileset>
<filterchain>
<striplinecomments>
<comment value="!" />
</striplinecomments>
<replacetokens>
<token key="hibernate.connection.url" value="${hibernate.connection.url}" />
<token key="hibernate.connection.username" value="${hibernate.connection.username}" />
<token key="hibernate.connection.password" value="${hibernate.connection.password}" />
<token key="fontFamily" value="arial, helvetica, sans-serif" />
</replacetokens>
</filterchain>
</copy>
<javac destdir="${build.dir}" source="1.6" target="1.6" debug="true" deprecation="false" optimize="false" failonerror="true">
<src path="${src.dir}" />
<classpath refid="master-classpath" />
</javac>
</target>
<target name="deploywar" depends="build" description="Deploy application as a WAR file">
<war destfile="${name}.war" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${web.dir}">
<include name="**/*.*" />
</fileset>
</war>
<move todir="${deploy.path}" preservelastmodified="true">
<fileset dir=".">
<include name="*.war" />
</fileset>
</move>
</target>
</project>
【问题讨论】:
-
你在使用 ANT 吗?你的 ANT 脚本是什么?细节量不够
-
和tomcat有什么关系?试试
ant -d -
我刚刚添加了我拥有的所有信息。实际上,这是我将应用程序部署到 tomcat 的目标,这也是我调查正在发生的事情的方式。顺便说一句,-d 会做什么?
-
我正在使用蚂蚁。我将添加ant脚本如下:
-
你真的需要从另一端开始工作 - “用刀调试,而不是步枪”。换句话说,不要试图猜测哪里出了问题,而是想办法收集更多信息来解决问题。通过实验切断可能的原因空间。例如,
中是否会出现问题?试着把它拿出来,看看你是否会在有清洁和没有清洁的情况下得到同样的战争。好的战争和坏的战争在规模和其他特征上有何区别?在构建好的和坏的构建后复制 build.dir 的内容,然后比较它们。有什么不同?