我有一个相当大的ivy.xml,其中包含许多配置,这些配置对于许多项目都是相同的.
我想将这个大的重复部分分解为一个常见的包含文件.不知怎的,我找不到任何描述可以做到这一点的文件.
谁知道这是否可行?
编辑:经过深思熟虑,我认为这不是故意的.常春藤文件应该是一个有凝聚力的单元,不应该包含任何基于文件的引用,只引用其他常春藤模块...
小智 9
您可以创建一个ivy元模块,它依赖于所有这些常见的包,然后让所有其他项目通过传递依赖来解析公共库:
<?xml version="1.0"?>
<ivy-module version="2.0">
<info organisation="com.example" module="common-libs"/>
<configurations>
<conf name="runtime" transitive="true" visibility="public" />
<conf name="master" transitive="true" visibility="public" />
<conf name="compile" transitive="true" visibility="public" />
<conf name="default" transitive="true" visibility="public" extends="master" />
</configurations>
<dependencies>
<dependency org="oracle" name="ojdbc14_g" rev="10.2.0.3"
conf="compile->compile(*),master(*);runtime->runtime(*);master->master(*)"/>
<dependency org="tomcat" name="servlet-api" rev="6.0.16"
conf="compile->compile(*),master(*);runtime->runtime(*);master->master(*)"/>
<dependency org="junit" name="junit" rev="4.3"
conf="compile->compile(*),master(*);runtime->runtime(*);master->master(*)"/>
</dependencies>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)
对于一个典型的项目:
<?xml version="1.0"?>
<ivy-module version="2.0">
<info organisation="com.example" module="myproject"/>
<configurations>
<conf name="runtime" transitive="true" visibility="public" />
<conf name="master" transitive="true" visibility="public" extends="runtime"/>
<conf name="compile" transitive="true" visibility="public" />
<conf name="default" transitive="true" visibility="public" extends="master" />
</configurations>
<dependencies>
<dependency org="com.example" name="common-libs" rev="latest.release"
conf="compile->compile(*),master(*);runtime->runtime(*);master->master(*)"/>
</dependencies>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)
在这里,我使用Maven解析器的POM-> Ivy转换中的传统配置命名约定,尽管您可以以任何对您有意义的方式映射配置名称.我倾向于使用常春藤:安装任务将Maven模块复制到我们的Ivy存储库中,所以我大部分都使用默认的ivy.xmls.如果您正在使用IvyRoundup,那么您将主要想要传递地映射"默认"配置.
| 归档时间: |
|
| 查看次数: |
4442 次 |
| 最近记录: |