配置SBT只解析Ivy存储库中的jar(而不是war)

时间:2016-03-06 20:41:04

标签: maven jar sbt ivy artifactory

我正在使用SBT和Ivy / Artifactory构建两个项目。

其中一个项目以JAR和WAR格式上传到Artifactory。 另一个项目使用SBT从另一个项目构建的JAR作为依赖项。

我的问题是:当我添加Artifactory repo并构建第二个项目时,它成功找到了工件,但是同时下载了JAR和WAR,而只需要JAR文件。

我查找了有关该问题的文档,但找不到该扩展程序的任何特定内容。我在SBT文档页面中读到过分类器,但这似乎不是我想要的。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

事情是设置2个不同的常春藤配置,一个用于jar,一个用于战争。

然后在依赖项目中,您可以执行以下操作:

“my.kikou.org” %% “dependeeProj” % “1.0” % “war”

或者

“my.kikou.org” %% “dependeeProj” % “1.0” % “jar”

因此,在 dependee 项目dependeeProj SBT文件中,您可以按照以下步骤设置常春藤配置:
http://www.scala-sbt.org/0.13/docs/Artifacts.html#Modifying+default+artifacts

目标是生成一个包含2个配置的ivy.xml(一个用于jar,一个用于war),并将工件(.jar和.war)作为正确配置的一部分。生成的(通过SBT)ivy.xml看起来应该是这样的:

<ivy-module version="1.0">
    ...
    <configurations>
        <conf name="jar" description="Lib as a Jar"/>
        <conf name="war" description="Lib as a War"/>
    </configurations>
    <publications>
        <artifact name="dependeeProj-jar" type="jar"  conf="jar" ext="jar"/>
        <artifact name="dependeeProj-war" type="war"  conf="war" ext="war"/>
    </publications>
    ...
</ivy-module>

干杯