gpt4 book ai didi

ivy - 将检索到的工件拆分到两个单独的 lib 目录中

转载 作者:行者123 更新时间:2023-12-02 18:06:09 24 4
gpt4 key购买 nike

在我的 Web 应用程序中,有两个单独的 lib 目录:

  • /lib
  • /web/webroot/WEB-INF/lib

其背后的想法是,后一个库中的库仅由前端代码使用,而第一个库则由前端和业务逻辑代码使用。有一个类加载器可以让业务逻辑代码看不到看到/web/webroot/WEB-INF/lib 中的 jar。

我如何告诉ivy某些依赖项应该转到第二个目录,而所有其他依赖项应该转到第一个目录?

这并不简单,因为 Web 类加载器可以在两个目录中看到 jar,而我不希望 jar 在两个目录中。

最佳答案

配置用于创建依赖项的逻辑分组:

ivy.xml

<ivy-module version="2.0">
<info organisation="com.myspotontheweb" module="demo"/>
<configurations>
<conf name="frontEnd" description="Jars used by front end"/>
<conf name="businessLogic" description="Jars used for business logic"/>
</configurations>
<dependencies>
<dependency org="commons-lang" name="commons-lang" rev="2.5" conf="businessLogic->default"/>
<dependency org="commons-codec" name="commons-codec" rev="1.4" conf="businessLogic->default"/>
<dependency org="commons-cli" name="commons-cli" rev="1.2" conf="frontEnd->default"/>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1" conf="frontEnd->default"/>
</dependencies>
</ivy-module>

ivy retrieve ant 任务可以使用这些配置来填充您的目录:

build.xml

<target name="init" description="--> retrieve dependencies with ivy">
<ivy:retrieve conf="businessLogic" pattern="lib/[artifact].[ext]"/>
<ivy:retrieve conf="frontEnd" pattern="web/webroot/WEB-INF/lib/[artifact].[ext]"/>
</target>

示例

$ find . -type f
./build.xml
./ivy.xml
./lib/commons-lang.jar
./lib/commons-codec.jar
./web/webroot/WEB-INF/lib/commons-cli.jar
./web/webroot/WEB-INF/lib/commons-logging.jar

关于ivy - 将检索到的工件拆分到两个单独的 lib 目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4071009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com