为什么我的蚂蚁建筑商建立了我的依赖之一的过时版本



我正在从事两个Java项目。项目A使用项目B作为引用库。我需要在一个jarfile中从这两个项目中导出代码。为此,我在项目A中创建了一个lib/文件夹,并自动将项目B导出到该文件夹。然后,我会自动导出具有这样的构建文件的项目A,因此lib/文件夹中的所有jarfiles都包含在最终JAR中:

<?xml version="1.0" encoding="UTF-8"?>
<project name="projectA" default="makejar" basedir=".">
    <target name="makejar" description="Create a jar for the project">
        <jar destfile="/destination/file/path/projectA.jar">
            <fileset dir="bin/"></fileset>
            <zipgroupfileset dir="./lib" includes="**/*.jar"/>
        </jar>
   </target>
</project>

这已经好几个月了。但是,几个小时前,它开始仅导出B。我在lib/文件夹中对代码进行了反编译,并确定B导出确实是最新的。但是,我在目标文件中的分解代码包括b。

的过期版本

我尝试过:

  • 重新启动日食
  • 清洁/重建所有项目
  • 删除目的地的现有jarfile
  • lib/中删除b,重新出口b,并重新配置我的构建路径
  • 窗口 ->显示视图 ->问题

我该如何诊断这个问题?如果您有更好的管理依赖性方法,那么我不必将大约30%的开发时间陷入此类内容。

在其他任何人都遇到的机会上,我将在此处发布我找到的解决方案。我认为这是问这个问题的错误的地方,但我越来越拼命。

在我的问题中,我只给出了我的设置的大量简化版本。实际上,我有10个项目,其中许多项目相互依赖。

在这种情况下,问题是,也是A的lib/文件夹的一部分,也依赖于项目。但是,我在Eclipse中关闭C,因此C并未自动出口。由于某种原因,我的蚂蚁构建器允许C的引用B覆盖A在编译时a的引用。

相关内容

  • 没有找到相关文章

最新更新