首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将快照依赖项的版本插入Ammonite脚本中

如何将快照依赖项的版本插入Ammonite脚本中
EN

Stack Overflow用户
提问于 2019-03-20 12:22:57
回答 3查看 166关注 0票数 0

氨可以从Maven存储库下载依赖项。

我使用的是快照依赖项,我希望始终使用缓存的版本,以避免使用可能的未经测试的更新版本。这个是可能的吗?

我知道Ammonite最近使用了Coursier和Ivy之前,所以我发现一些信息可能已经过时了。

我的一些想法是用另一个名称在本地存储库中安装当前的快照版本。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-28 14:55:56

创建具有以下目录结构的本地.ivy2/local存储库:

代码语言:javascript
复制
organization/moduleId/version/ivys
                              jars
                              poms

ivy.xml目录中创建一个新的ivys,如下所示:

代码语言:javascript
复制
<?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.....

票数 0
EN

Stack Overflow用户

发布于 2019-03-20 12:39:54

这样做与依赖管理系统的设计相冲突,这可能是个坏主意,但它是可以做到的。有几种方法,取决于您的情况。

如果您控制了存储库,或者是部署了工件的人,您可以打开“唯一快照版本”功能,这将为您提供您要寻找的内容。(看看http://maven.apache.org/pom.html#Repository)

如果您不是部署人员,并且无法控制回购,那么是的,我怀疑复制工件的特定版本(可能具有唯一的名称、版本或分类器)可能是您的最佳选择。

警告:尽管这么说,这似乎是个坏主意--快照版本应该是通过了所有测试的最新和最伟大的版本,不应该被视为一个永远不会改变的发布版本。看起来,如果您想要一个不会更改的版本,就不应该使用快照。但只有你知道你的用例。

票数 2
EN

Stack Overflow用户

发布于 2019-03-21 14:52:45

@jwismar,我同意应该避免使用快照版本。

但如果你要用它,下面是我怎么做的:

代码语言:javascript
复制
export COURSIER_TTL=inf
myscript.sc

TTL环境变量控制快照的保存时间。默认情况下24小时。

这样,缓存的版本将始终被使用。

UPDATE:但是有一个错误阻止它工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55260705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档