gpt4 book ai didi

java - eclipse 中的 build.xml 不构建 jar

转载 作者:行者123 更新时间:2023-12-01 14:30:24 25 4
gpt4 key购买 nike

在我们公司,许多项目都在 Java 上,并且 build.xml 应该编译、清理和运行所有代码,因此 build.xml 不会编译代码,.jar 也不会创建。构建.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="java" basedir=".">

<description>Builds, tests, and runs the project front_web.</description>
<property name="project.location" value="C:\apache\repp_copy\Java\processing" />
<property name="webapps.location" value="C:\apache-tomcat-6.0.36\webapps" />
<path id="project.class.path">
<pathelement location="C:\apache\repp_copy\Java\processing\lib\servlet-api.jar" />
<pathelement location="C:\apache\repp_copy\Java\processing\lib\log4j-1.2.16.jar" />
<pathelement location="C:\apache\repp_copy\Java\processing\lib\mailapi.jar" />
</path>
<target name="compile" depends="clean">
<javac srcdir="src" destdir="Build/tnxBuild" debug="true" encoding="utf-8">
<classpath refid="project.class.path" />
</javac>
<copy todir="Build/tnxBuild">
<fileset dir="src">
<include name="*.properties"/>
</fileset>
</copy>
</target>

<target name="compileMcVpc" depends="clean, compile">
<javac srcdir="module-thx/src" destdir="Build/tnxBuild" debug="true" encoding="utf-8">
<classpath refid="project.class.path" />
</javac>
<copy todir="Build/tnxBuild">
<fileset dir="module-thx/src">
<include name="*.properties"/>
</fileset>
</copy>
</target>

<fileset id="common" dir="lib">
<include name="*.jar" />
</fileset>

<target name="createJar" depends="compileMcVpc,clean,compile">
<war destfile="thx.jar" webxml="module-thx/web/WEB-INF/web.xml">
<lib refid="common" />
<classes dir="${project.location}/Build/tnxBuild">
</classes>

<metainf file="module-thx/web/META-INF/context.xml">
</metainf>
<fileset id="content" dir="${project.location}/module-thx/web">
<include name="*/*.*" />
<include name="*.*" />
</fileset>

<!--<metainf file="front_web/web/META-INF/context.xml">
</metainf>-->
<!--<fileset id="content" dir=".">
<include name="*.*" />
</fileset>-->
</war>
</target>

<target name="clean">
<delete dir="Build/tnxBuild" />
<mkdir dir="Build/tnxBuild" />
</target>

<target name="runApp" depends="createJar">
<delete dir="${webapps.location}/thx.jar" />
<copyfile src="thx.jar" dest="C:\apache\repp_copy\Java\processing\jars\thx.jar" />
<delete dir="thx.jar" />
</target>
</project>

PS 所有目录都正确,仔细检查。控制台结果:

Buildfile: C:\apache\repp_copy\Java\processing\build-Tnx.xml
BUILD SUCCESSFUL
Total time: 422 milliseconds

最佳答案

查看为“createJar”目标列出的依赖项。

<target name="createJar" depends="compileMcVpc,clean,compile">

如果您调用createJar目标,在运行之前,ant将按顺序调用compileMcVpc、clean和compile。

JAR 任务读取在compileMcVpc 期间构建的文件,然后通过clean 删除。因此,当 createJar 开始工作时,它所需的文件已经消失了。

现在有点有趣的是,您有 2 个目标,compileMcVpc,它们都将 java 字节码输出到同一目录。考虑到目标的顺序,我希望“src”类将位于 JAR 中,而不是“module-thx/source”jar 中。

尝试理顺您的依赖关系。为了简化和调试,也许可以按照您希望它们运行的​​顺序直接删除所有依赖项,而无需 ant 为您做这件事。如果有效,则证明依赖项有问题。

关于java - eclipse 中的 build.xml 不构建 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16896359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com