氨可以从Maven存储库下载依赖项。
我使用的是快照依赖项,我希望始终使用缓存的版本,以避免使用可能的未经测试的更新版本。这个是可能的吗?
我知道Ammonite最近使用了Coursier和Ivy之前,所以我发现一些信息可能已经过时了。
我的一些想法是用另一个名称在本地存储库中安装当前的快照版本。
发布于 2019-03-28 14:55:56
创建具有以下目录结构的本地.ivy2/local存储库:
organization/moduleId/version/ivys
jars
poms在ivy.xml目录中创建一个新的ivys,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="myorg" module="mymod" revision="someVersion" status="integration" e:scalaVersion="2.12" e:sbtVersion="0.13">
<description>
my module
</description>
</info>
<configurations>
<conf name="compile" visibility="public" description=""/>
<conf name="runtime" visibility="public" description="" extends="compile"/>
<conf name="test" visibility="public" description="" extends="runtime"/>
<conf name="provided" visibility="public" description=""/>
<conf name="optional" visibility="public" description=""/>
<conf name="sources" visibility="public" description=""/>
<conf name="docs" visibility="public" description=""/>
<conf name="pom" visibility="public" description=""/>
</configurations>
<publications>
<artifact name="sikulix2tigervnc" type="pom" ext="pom" conf="pom"/>
<artifact name="sikulix2tigervnc" type="jar" ext="jar" conf="compile"/>
</publications>
<dependencies>
</dependencies>
</ivy-module>将名为jars的*.jar放在poms目录中,在poms中放置*.pom。
问题是Coursier不会加载传递依赖项,所以添加额外的import $ivy.....
发布于 2019-03-20 12:39:54
这样做与依赖管理系统的设计相冲突,这可能是个坏主意,但它是可以做到的。有几种方法,取决于您的情况。
如果您控制了存储库,或者是部署了工件的人,您可以打开“唯一快照版本”功能,这将为您提供您要寻找的内容。(看看http://maven.apache.org/pom.html#Repository)
如果您不是部署人员,并且无法控制回购,那么是的,我怀疑复制工件的特定版本(可能具有唯一的名称、版本或分类器)可能是您的最佳选择。
警告:尽管这么说,这似乎是个坏主意--快照版本应该是通过了所有测试的最新和最伟大的版本,不应该被视为一个永远不会改变的发布版本。看起来,如果您想要一个不会更改的版本,就不应该使用快照。但只有你知道你的用例。
https://stackoverflow.com/questions/55260705
复制相似问题