Java 如何使生成文件依赖于首先运行的另一个生成文件?
我有一个构建文件,它依赖于另一个项目中的jar文件。但是,有一个总体构建文件用于一次构建所有项目,我无法保证其他项目会在我之前构建(在这种情况下,我的项目将失败)。我想知道是否有一种方法可以确保在我的项目被称为Java 如何使生成文件依赖于首先运行的另一个生成文件?,java,ant,Java,Ant,我有一个构建文件,它依赖于另一个项目中的jar文件。但是,有一个总体构建文件用于一次构建所有项目,我无法保证其他项目会在我之前构建(在这种情况下,我的项目将失败)。我想知道是否有一种方法可以确保在我的项目被称为之前建造另一个项目,而不必使用常春藤(参见关于这个的另一个主题) 现在,我的ant脚本中有一个目标,我在依赖的项目的构建文件中调用ant任务,这很好(或者至少看起来是这样) 布局如下: <target name="buildDependencies"> &l
之前建造另一个项目,而不必使用常春藤(参见关于这个的另一个主题)
现在,我的ant脚本中有一个目标,我在依赖的项目的构建文件中调用ant
任务,这很好(或者至少看起来是这样)
布局如下:
<target name="buildDependencies">
<ant antfile="../some_project/build.xml" target="build" inheritAll="false" dir="../some_project"/>
<ant antfile="../someOtherProjectIDependOn/build.xml" target="build" inheritAll="false" dir="../someOtherProjectIDependOn"/>
</target>
<target name="build" depends="buildDependencies">
//other projects are guaranteed to be built so go ahead and build this project's stuff
</target>
//其他项目保证会被建造,所以继续建造这个项目的东西吧
但我想知道这是否有某种危险,或者它是否会导致总体构建文件(调用所有要构建的项目)在buildDependencies
中构建两次项目
我希望有一种更干净的方法。你可以把蚂蚁放下,彻底洗手,然后捡起来,长大成人。这正是Maven
的全部内容。我没有编写足够的Ant(尽管我维护了它——或者说Maven,我不确定是哪一个),但我认为,正如在Make中一样,答案本质上就是你所做的——取决于前一步的结果,而不是它的执行本身。在Make中,您设置了依赖项,以便在目标的输出不存在或输入依赖项比输出项新时生成目标。@OldCurmudgeon我希望可以,但不幸的是,这不是个人项目:(