如何让 Ivy 下载 Hibernate 而不是这两个?
常春藤使用它所谓的“配置”来做到这一点。代表 Hibernate的您ivy.xml
将需要提供不同的配置来代表不同的 hibernate 用例。(显然有一些需要 jaas 和 jacc 的 hibernate 使用,但显然你没有使用这种情况。)
这是有关配置的文档。如果您想提供ivy.xml
用于休眠的,我可以提供有关构建配置的指针,这些配置将删除您要删除的特定库。
如果我真的需要这些并从 Sun 下载了他们的 Jars,Ivy 会在我机器的哪个文件夹中查找它们?
ivy 查找 ivy 文件和工件的“目录”由您正在使用的解析器列表指定。解析器列表在 ivy 设置文件(通常命名为ivysettings.xml
.)中指定。通常,这些不是本地目录,而是远程 URL。有; 但是,一种适用于此的本地文件解析器类型。
如果这样做,您将需要提供 ivy 文件和工件(jar),每个文件的文件名都与解析器模式匹配。有关详细信息,请参阅文档。
下面是一个来自 ivy 设置文件的本地文件解析器示例:
<filesystem name="myfiles" checkconsistency="false" checksums="" transactional="false">
<ivy pattern="/data/repo/[organisation]/[module]-[revision].ivy.xml"/>
<artifact pattern="/data/repo/[organisation]/[module]-[revision].[ext]"/>
</filesystem>
另请注意,您需要将您的 ivy 任务指向正确的解析器。您可以使用 ant 任务的 resolver 属性或ivy 设置文件defaultResolver
中元素的属性来执行此操作。settings
这是有关解析器的文档。
编辑: OP 为他的特定原始问题找到了一种耗时较少的解决方法。依赖标签的“排除”子标签为他完成了这项工作:
<dependencies>
<dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" conf='..'>
<exclude name='jaas' />
<exclude name='jacc' />
</dependency>
</dependencies>