这是将依赖项映射到本地“提供的”配置的方法:
<dependency org="org.apache.tomcat" name="servlet-api" rev="6.0.16" conf="provided->master"/>
配置映射的工作原理如下:
provided->master
^ ^
| |
Local Remote
config config
正如答案中所解释的,特殊的“主”配置仅包含该模块本身发布的工件,没有传递依赖项:
这意味着不需要“transitive=false”属性。
Update
如何使用该配置取决于您。第一个选项更简单,但我更喜欢第二种方法,因为我的配置报告与我的类路径内容匹配
Option 1
您可以按如下方式创建单个类路径:
<ivy:cachepath pathid="compile.path" conf="compile,provided"/>
然后可以在 javac 任务中使用它,如下所示:
<javac ... classpathref="compile.path">
..
Option 2
或者我更喜欢在配置和类路径之间进行一对二一的映射:
<ivy:cachepath pathid="compile.path" conf="compile"/>
<ivy:cachepath pathid="provide.path" conf="provided"/>
后一种方法的问题是 javac 任务需要明确声明类路径用法,如下所示:
<javac ...
<classpath>
<path refid="compile.path"/>
<path refid="provided.path"/>
</classpath>
我认为这明确地解释了您如何使用这个特殊提供的范围,但这实际上取决于您。