我正在尝试将Apache Ivy集成到Netbeans Web应用程序项目中。
我的build.xml
文件遵循 netbeans 教程: http://wiki.netbeans.org/FaqIvy
具体说来:
<target name="-ivy-retrieve">
<ivy:retrieve/> <!-- Load dependencies to the project -->
<pathconvert property="ivy.classpath.computed" dirsep="/" pathsep=":">
<path>
<fileset dir="lib" includes="*.jar"/>
</path>
<map from="${basedir}${file.separator}" to=""/>
</pathconvert>
<propertyfile file="nbproject/project.properties">
<entry operation="=" key="ivy.classpath" value="${ivy.classpath.computed}"/>
</propertyfile>
</target>
<target name="-pre-compile" depends="-ivy-retrieve"/>
<target name="-pre-compile-single" depends="-ivy-retrieve"/>
<target name="-post-clean">
<delete dir="lib"/>
</target>
奇怪的是,这更新ivy.classpath
nbprojects.project.properties
文件中,但我似乎无法让构建的WEB-INF/lib
文件夹填充列为依赖项的.jar
。
奇怪的是,前几天我有这个工作,并且能够填充构建的WEB-INF/lib
文件夹,现在当我删除依赖项时,相同的 jar 文件包含在构建中(而不是删除它们)。
关于如何更改build.xml
文件的任何建议?或者任何其他可以使 Ivy 成功集成到我的构建过程中的东西(检测到 Ivy:我在构建时在输出中看到"分辨率报告"和"检索")。
我尝试过的一些事情: 我在上面链接的教程中尝试了不同的选项(尝试包括:<property name="ivy.lib.dir" value="web/WEB-INF/lib/"/>
在-ivy-retrieve
任务中或在<ivy:retrieve/>
之前添加<ivy:resolve/>
任务)
ivy:retrieve
任务有一个sync
属性,该属性删除不再相关的依赖项。 此外,做一个clean and build
会有所帮助。