繁体   English   中英

蚂蚁构建:从类文件夹中的常春藤依赖项war文件中提取类文件

[英]Ant Build: Extract class files from a Ivy dependency war file in the class folder

我有一个项目,该项目依赖于另一个项目中的某些其他Java类。 在eclipse中,两个项目正在运行,没有任何错误。

现在,我要使用Jenkins和Ant的依赖项来构建项目。

我通过以下配置从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>

Jenkins的控制台日志:

[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 ...

到现在为止一切都很好

但是现在我有一个问题,就是我无法包含war文件中的类文件。 从war文件到相关类文件的文件夹结构:rest-db-1.0.3269.war \\ WEB-INF \\ classes \\ de \\ company \\ sh ...

这是我的尝试,没有成功:-(

<!-- 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>
     -->

我希望你对我有一些很棒的建议:-)

听起来您正在尝试声明对已使用ivy下载的工件内部的工件的依赖性?

打包程序解析器可能是您需要查找的地方。 功能强大,但设置起来有些复杂。

有关示例,请参见:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM