首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Jars会被排除在Enunciate的部署之外?

为什么Jars会被排除在Enunciate的部署之外?
EN

Stack Overflow用户
提问于 2008-10-02 15:08:56
回答 3查看 657关注 0票数 0

我正在使用Enunciate构建一个原型REST api,并且需要包含一个包含自定义代码的jar作为库。

我的Ant脚本如下所示:

代码语言:javascript
复制
<!--include all jars-->
<path id="en.classpath">
    <fileset dir="${lib}">
        <include name="**/*.jar" />
    </fileset>
</path>

<!--define the task-->
<taskdef name="enunciate" classname="org.codehaus.enunciate.main.EnunciateTask">
    <classpath refid="en.classpath" />
</taskdef>

<mkdir dir="${dist}" />

<enunciate dir="${src}" configFile="${basedir}/enunciate.xml">
    <include name="**/*.java" />
    <classpath refid="en.classpath"/>
    <export artifactId="spring.war.file" destination="${dist}/${war.name}" />
</enunciate>

问题是我的自定义jar被排除在WAR文件之外。有必要编译带注释的声明类,这样jar显然在编译时就在类路径上,但声明未能将其包含在发行版中。我还注意到,在WAR文件中并没有包含enunciate所需的几个WAR。

为什么它们被排除在外,我该如何修复它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-29 13:28:46

事实证明,我们试图包含的jar中有一个依赖项,该依赖项列在阐述所依赖的jar的清单文件(freemarker)中。声明自动排除了freemarker,乍一看,它似乎自动排除了所有依赖于freemarker的内容。如果我们从代码清单文件中的依赖jars列表中删除freemarker,它就能正常工作。

然而,我已经和Enunciate的主要开发者(Ryan Heaten)谈过了,他向我保证这不是正在发生的事情。包括他的回应如下:

真的吗?!

哇。有意思的。我无法解释这一点;Enunciate不会查看Manifest中的内容,以确定战争中应该包含哪些内容,所以我在这里有点困惑。这也可能是一些奇怪的Ant行为(由于某种原因,不在"en.classpath“引用中包含jar )。

~Ryan

票数 1
EN

Stack Overflow用户

发布于 2008-10-21 10:41:02

我从来没有使用过enunciate,但作为一个快速的技巧,你可以将jars添加到战争中:

代码语言:javascript
复制
<jar jarfile="${dist}/${war.name}" update="true">
   <fileset dir="${lib}">
        <include name="**/*.jar" />
    </fileset>
</jar>

注意:您可能希望将jars添加到WEB-INF/lib目录,而不是根目录。

我猜想,由于您最清楚应该在jar文件中放入什么内容,所以enunciate对您自己的构建过程进行了最小程度的干预。

票数 2
EN

Stack Overflow用户

发布于 2015-09-11 04:14:06

在enunciate.xml中,我告诉它不要复制任何库:

代码语言:javascript
复制
<webapp doLibCopy="false">

然后,在ant构建文件中,在阐述任务的末尾,我更新了war (您可以这样做来更新包含/排除的war,无论您是否已经在上面的步骤中阐明了复制这些war):

代码语言:javascript
复制
<war destfile="build-output/{mywar}" update="true">
    <lib dir="WebContent/WEB-INF/lib">
        <include name="**/*.jar" />
    </lib>
    <lib dir="build-output">
        <include name="some_other.jar" />
    </lib>
</war>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/162874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档