gpt4 book ai didi

java - Eclipse ANT 构建错误

转载 作者:行者123 更新时间:2023-12-01 11:41:40 25 4
gpt4 key购买 nike

我是 ANT 构建的新手,我遇到了一些问题,当我尝试构建时,我收到一条消息:

构建失败C:\Users\user\Documents\PM\proyecto-base\proyecto-base\intranet\build.xml:169: 未找到引用 xdoclet.classpath。

但是我已经在同一个文件中声明了 xdoclet.classpath。

此外,我还在 build.properties 文件中声明了诸如 ${xdoclet.lib.dir} 之类的属性。

这是我的 build.xml 文件

<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- Ant Build File para Intranet -->
<project name="${project.name}" default="ear" basedir=".">

<!-- Importar funcionalidad comun -->
<import file="../common.xml" />
<property name="jboss.security-domain" value="java:/jaas/NotificacionApplicationSecurity" />
<target name="init">
<path id="classpath">
<fileset dir="${lib.dir}" />
<fileset dir="${hibernate.dir}" />
<fileset dir="${hibernate-annotations.dir}" />
<fileset dir="${sri-adm.dir}" />
<fileset dir="${sri-seguridad.dir}" />
<fileset dir="${jsf.dir}" />
<fileset file="${servicio.jar}" />
<fileset file="${log4j.jar}" />
<fileset file="${servlet.jar}" />
<fileset file="${mail.jar}" />
<fileset dir="${jboss.lib}">
<include name="*.jar" />
</fileset>
</path>
<path id="xdoclet.classpath">
<fileset dir="${xdoclet.lib.dir}" />
<pathelement location="${j2ee.jar}" />
<pathelement location="${servlet.jar}" />
</path>
</target>

<target name="clean" depends="init">
<delete dir="../${build.dir}/intranet" />
<delete dir="../${dist.dir}">
<exclude name="${servicio.name}-${version}.jar"/>
</delete>
</target>


<!--=============== Compile JAVA files ========================-->
<target name="compile" description="Compile" >
<echo message="Start compilation..." />
<!-- compile project-->
<mkdir dir="../${build.intranet.dir}/classes"/>
<javac destdir="../${build.intranet.dir}/classes" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true">
<src path="${src.main.java.dir}" />
<classpath refid="classpath" />
</javac>
</target>

<!--============== Genera archivos web==========-->
<target name="webdoclet" description="Generar archivos XML Web y Struts" >
<echo message="Generando Web" />
<delete file="../${metadata.intranet.web.dir}/jboss-web.xml"/>
<webdoclet destdir="../${metadata.intranet.web.dir}" force="${xdoclet.force}" mergedir="${conf.xdoclet.intranet.dir}">
<fileset dir="${src.main.java.dir}">
<include name="**/*.java" />
</fileset>
<deploymentdescriptor displayname="SRI" description="" xmlencoding="ISO-8859-1"
validatexml="true" servletspec="2.4" sessiontimeout="60" destdir="../${metadata.intranet.web.dir}"
mergeDir="../${conf.xdoclet.intranet.dir}" distributable="false" />

<facesconfigxml destinationfile="${project.name}-faces-config.xml" mergedir="../${metadata.intranet-jsf}" />
<jbosswebxml
version="4.0"
mergeDir="${metadata.intranet-jbossweb}"
contextroot="${project.name}"
securitydomain="${jboss.security-domain}"
validateXML="true" xmlencoding="ISO-8859-1"/>
</webdoclet>
<replace file="../${metadata.intranet.web.dir}/jboss-web.xml" token="&lt;security-domain" value="&lt;security-domain flushOnSessionInvalidation=&quot;true&quot;" />

</target>



<target name="build" depends="init,webdoclet" description="Compila las clases">
<mkdir dir="../${classes.dir}" />
<javac destdir="../${classes.dir}" debug="on" deprecation="on" optimize="off" target="1.5" encoding="ISO-8859-1">
<src path="${src.main.java.dir}" />
<classpath refid="classpath" />
<classpath refid="xdoclet.classpath" />

<!-- Descomentar si se quieren ver los Warnings -->
<!--compilerarg value="-Xlint:unchecked" /-->
</javac>
</target>

<!--============= Genera un archivo WAR del proyecto =============================-->

<target name="war" description="Packages app as WAR" depends="compile, webdoclet">
<echo message="Generando WAR..." />
<mkdir dir="../${dist.dir}/intranet" />
<copy todir="../${metadata.tmp.intranet.dir}">
<fileset dir="../${metadata.intranet.web.dir}" />
<filterset>
<filter token="project.name" value="${project.name}"/>
</filterset>
</copy>
<copy file="../${conf.intranet.dir}/jboss-web.xml" todir="../${metadata.tmp.intranet.dir}">
<filterset>
<filter token="project.name" value="${project.name}"/>
</filterset>
</copy>

<war destfile="../${dist.dir}/intranet/${webapp.intranet.name}.war" webxml="../${metadata.intranet.web.dir}/web.xml">
<classes dir="../${build.intranet.dir}/classes">
<include name="**/**/controladores/*.*"/>
<include name="**/**/web/**/*.*"/>
<include name="**/**/validadores/**/*.*"/>
<include name="**/**/convertidores/**/*.*"/>
<exclude name="**/**/internet/**/*.*"/>
</classes>
<classes dir="../intranet/src/main/java">
<include name="**/**/*.properties"/>
</classes>
<fileset dir="${src.main.webapp.dir}">
<include name="**/*.*" />
</fileset>

<lib dir="${jsf.dir}" >
<include name="rich*.jar" />
<include name="jsf*facelet*.jar" />
</lib>
<lib dir="${sri-seguridad.dir}" >
<include name="seguridad*.jar" />
</lib>


<lib dir="${lib.dir}" >
<include name="commons-digester.jar" />
<include name="commons-beanutils.jar" />
<include name="commons-fileupload.jar" />
<include name="commons-el.jar" />
<include name="commons-lang-2.1.jar" />
</lib>

<!-- Archivos de configuracion en WEB-INF -->
<webinf file="../${metadata.tmp.intranet.dir}/web.xml" />
<webinf file="../${metadata.tmp.intranet.dir}/${project.name}-faces-config.xml" />
<webinf file="../${metadata.tmp.intranet.dir}/jboss-web.xml" />
</war>
<delete dir="../${metadata.tmp.intranet.dir}" />
</target>

<target name="ear" depends="war">
<mkdir dir="../${metadata.intranet-ejb.tmp}" />
<copy todir="../${metadata.intranet-ejb.tmp}">
<fileset dir="../${metadata.intranet-ejb}" />
<filterset>
<filter token="project.name" value="${project.name}"/>
<filter token="intranet.name" value="${intranet.name}"/>
</filterset>
</copy>
<ear destfile="../${dist.dir}/intranet/${webapp.intranet.name}.ear" appxml="../${metadata.intranet-ejb.tmp}/application.xml">
<fileset dir="../${dist.dir}" includes="*.jar"/>
<fileset dir="../${dist.dir}/intranet" includes="*.war"/>

</ear>
<delete dir="../${metadata.intranet-ejb.tmp}" />
</target>


<target name="deploy" depends="ear" description="Copia el archivo WAR en el directorio deploy del server">
<copy file="../${dist.dir}/intranet/${webapp.intranet.name}.ear" todir="${jboss.deploy.intranet.dir}" />
</target>

<!-- Definición de WebDoclet -->
<taskdef name="webdoclet" classname="xdoclet.modules.web.WebDocletTask">
<classpath>
<path refid="xdoclet.classpath" />
<path refid="classpath" />
</classpath>
</taskdef>



<!-- Definicion de JSF -->

<taskdef name="facesconfigxml" classname="xdoclet.modules.jsf.FacesConfigXmlSubTask">
<classpath>
<path refid="xdoclet.classpath" />
<path refid="classpath" />
</classpath>
</taskdef>
</project>

返回错误的行如下:

<!-- Definición de WebDoclet -->
<taskdef name="webdoclet" classname="xdoclet.modules.web.WebDocletTask">
<classpath>
<path refid="xdoclet.classpath" />
<path refid="classpath" />
</classpath>
</taskdef>

但正如我告诉你的,我已经在开头的同一个文件中声明了我的 xdoclet.classpath:

 <path id="xdoclet.classpath">
<fileset dir="${xdoclet.lib.dir}" />
<pathelement location="${j2ee.jar}" />
<pathelement location="${servlet.jar}" />
</path>

有人可以帮我解决这个问题吗?非常感谢

最佳答案

这里的问题是您的路径定义位于目标“init”内部,但 taskdef 定义位于项目级别的任何目标外部。当 ant 加载构建文件时,它将尝试验证在项目级别定义的所有内容。在这种情况下,它会失败,因为 init 目标尚未运行并且 xdoclet.classpath 路径未定义。

如果您只是将路径元素移到项目级别,就像任务定义一样,问题就会消失。

关于java - Eclipse ANT 构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29473801/

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