如何使用分类器访问jar



我有一个maven项目,它构建了两个jar作为工件。版本号为0.7,其中一个工件以"默认"方式构建,另一个工件具有分类器。因此,在我的存储库中,它们看起来像这样:

Tue Jun 10 08:06:12 MST 2014    14915   gokenizer-0.7.pom   
Tue Jun 10 08:06:12 MST 2014    40  gokenizer-0.7-core.jar.sha1 
Tue Jun 10 08:06:12 MST 2014    40  gokenizer-0.7.pom.sha1  
Tue Jun 10 08:06:12 MST 2014    32  gokenizer-0.7.jar.md5   
Tue Jun 10 08:06:12 MST 2014    32  gokenizer-0.7.pom.md5   
Tue Jun 10 08:06:12 MST 2014    37969843    gokenizer-0.7.jar   
Tue Jun 10 08:06:12 MST 2014    41887392    gokenizer-0.7-core.jar  
Tue Jun 10 08:06:12 MST 2014    32  gokenizer-0.7-core.jar.md5  
Tue Jun 10 08:06:12 MST 2014    40  gokenizer-0.7.jar.sha1

可以看到,这个分类器的jar的分类器是"core"。

到存储库的路径是:

http://myhostname/plugin/repository/project/DomainIQCore/LastSuccessful/repository/com/example/domain/gokenizer/0.7/

所有好吗?那么,在构建项目时,我如何实际指定我想要具有"核心"分类器的jar ?

在我的构建。scala文件,我试了这个:

  libraryDependencies ++= Seq(
    "com.example.domain" % "gokenizer" % "0.7" % "core"
  ),

然后我得到这个错误:

java.lang.IllegalArgumentException: Cannot add dependency 'com.example.domain#gokenizer;0.7' to configuration 'core' of module com.example#domainiq_2.10;0.1.0-SNAPSHOT because this configuration doesn't exist!

当我尝试这个时:

  libraryDependencies ++= Seq(
    "com.example.domain" % "gokenizer" % "0.7-core"
  ),

它显然构建了错误的存储库路径:

http://myhostname/plugin/repository/project/DomainIQCore/LastSuccessful/repository/com/example/domain/gokenizer/0.7-core/gokenizer-0.7-core.pom

我肯定是做错了什么。我认为第一种方式(第四个字段为"核心")是一种方式,但我不知道"因为这个配置不存在"是什么意思。由于它似乎甚至没有试图击中存储库,似乎我必须告诉SBT"核心"是什么意思?这对我来说没有意义,因为我认为它只是路径的一部分,而不是这样的"配置"。

当我删除第4个字段时,它正确地获得了jar的非分类器版本,因此我知道存储库在那里并且正在工作…

帮助吗?

当然,像往常一样,发布问题并找到答案;)

说了这么多次"分类器",我就在伟大的谷歌机器上尝试了不同的搜索,结果得到了答案。

        "com.example.domain" % "gokenizer" % "0.7" classifier "core"

不是百分号。"classifier"作为关键字。我不知道。

最新更新