当前位置: 首页 > 知识库问答 >
问题:

Ant构建:从类文件夹中的Ivy依赖项war文件中提取类文件

欧阳成弘
2023-03-14

我通过以下配置从Ivy获得依赖关系:

<publications>
    <artifact name="${version.name}" type="war" ext="war"/>
</publications>

<dependencies>
    <dependency org="de.company.sh" name="rest-db" rev="latest.integration"/>
</dependencies>

build.xml中的检索:

<!-- retrieve dependencies from ivy -->
<target name="retrieve" depends="prepare, prepare.productive, prepare.beta">
    <!-- Fetch parameters from properties -->
    <property file="build.properties" />
    <!-- Resolve module -->
    <ivy:resolve file="ivy.xml" />
    <!-- Retrieve dependencies -->
    <ivy:retrieve pattern="${build}/deps/[organization]/[module]/[artifact]-[revision].[ext]" />
</target>
[ivy:resolve] Apr 24, 2013 1:42:06 PM   org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
[ivy:resolve] INFO: Basic authentication scheme selected
[ivy:resolve] downloading    http://localhost:7080/nexus/content/repositories/snapshots/de/company/sh/rest-db/1.0.3269/wars/rest-db-1.0.3269.war ...
<!-- create war file from java classes -->
<target name="war" depends="compile">


    <!-- Move rest-db where it is needed
    <war destfile="${build}/lib/rest-db.war" webxml="WEB-INF/web.xml">
        <zipfileset dir="${build}/classes" includes="**/*.class"/>
    </war>
     -->
    <!-- -->
    <zip destfile="${build}/deps/de.company.sh/rest-db" basedir="${build}" update="true" />

    <!-- Copy all necessary Spring libraries -->
    <copy todir="${build}/lib">
        <!-- All files directly located in the lib/ directory -->
        <fileset dir="${lib}">
            <include name="*.jar" />
        </fileset>
    </copy>
    <!-- Move rest-db where it is needed
    <copy todir="${build}/classes">
        <fileset dir="${build}/deps/de.company.sh/rest-db">
            <include name="*.*" />
        </fileset>
    </copy>
     -->

我希望你对我有一些绝妙的建议:-)

共有1个答案

龚永新
2023-03-14

听起来像是在使用Ivy下载的工件中声明对工件的依赖?

也许packager解析器是您需要查看的地方。功能强大,但安装起来有点复杂。

有关示例,请参见:

    null
 类似资料:
  • 我正在使用maven war插件生成war文件。 在依赖关系层次结构中,我可以看到许多可传递的依赖关系,它们被提取到lib文件夹中。 经过多次研究,我发现将它们从war lib文件夹中排除的最简单方法是在我的依赖项中将它们声明为“提供”。 然而,我有很多依赖项要排除,我必须在许多WAR pom文件中这样做。 我的问题是: 有没有办法将所有这些依赖项分组到“pom”包装中,并在我的WAR pom文件

  • 我正在尝试建立一个gradle项目。 以下是我的项目结构: 这是我的tobris erpgradle.build(1) 这是我的buildSrcgradle.build(2): 我使用hibernate从XML文件生成数据库实体。生成的类位于生成下的src gen文件夹下。 问题是当我构建项目时,src-gen下的类显示此错误 /tobris-erp/build/src-gen/java/com/

  • 我想通过使用“文件类”从项目文件夹中获取文件,我如何做到这一点?

  • 问题内容: 我需要在Maven生成的WAR 文件夹中具有JAR依赖关系,而不是,这是它在存储库中的名称。实现这一目标的最佳方法是什么? 在我的POM中,我有: 我希望它以出现在文件夹中。 这是我无法控制的对Maven Central的外部依赖。同样,我也不想强迫使用此方法的所有人将依赖关系重新部署到其本地存储库。 是否有我可以利用的Maven插件,还是应该开始自己编写代码? 问题答案: 您可以使用

  • 问题内容: 我在Eclipse中有一个对我的工作区中的另一个Java项目有依赖性的对象。在内置的Tomcat服务器中运行Web项目时,我已将项目依赖项添加到 运行配置中 的类路径中。我想创建一个WAR,用于在外部服务器上部署Web项目。依赖性Java项目已添加到Eclipse中的 Java Build路径 ,但是当我导出WAR文件时,该库不包括在内。还可以在 Order and Export中 选

  • 我正在使用maven shade插件创建一个胖罐子,其中也包括一些弹性城堡罐子。但这造成了问题,因为Bouncy Castle的未签名版本。