gpt4 book ai didi

sbt - 如何设置 sbt 以便在联机时获取所有必要的依赖项,然后让我脱机工作?

转载 作者:行者123 更新时间:2023-12-04 15:44:06 24 4
gpt4 key购买 nike

我尝试在没有互联网连接的区域中处理我的项目。令我惊讶的是,sbt 在这种情况下遇到了麻烦。虽然,我应该将我的库放在缓存中(鉴于我最初是在线启动项目的),但 sbt 无法解决一些依赖关系。

Sbt 无法获取我的本地 maven 存储库,他也找不到我认为他已经下载的其他依赖项(即在缓存中)。

*

My question is: how to ensure that when i have the connection, sbt fetches the libs in the cache ONCE, so that when i don't have it, it fetches all my local repo including the one of maven.



我问这个是因为根据我对当前情况的理解(即没有可用的互联网连接时):
  • sbt 从 maven 缓存下载时遇到问题
  • sbt 可以在 ivy local
  • 中找到我的大部分依赖项
  • 由于某些原因,sbt 找不到某些特定的依赖项,
    显然没有缓存。

  • 例如,这里是 sbt 应该已经缓存的库的踪迹。
    [warn]   file:///Users/maatary/.m2/repository/com/google/inject/extensions/guice-assistedinject/4.0-beta4/guice-assistedinject-4.0-beta4.pom
    [info] Resolving com.google.inject.extensions#guice-multibindings;4.0-beta4 ...
    **[warn] Host repo1.maven.org not found.** url=http://repo1.maven.org/maven2/com/google/inject/extensions/guice-multibindings/4.0-beta4/guice-multibindings-4.0-beta4.pom
    **[info] You probably access the destination server through a proxy server that is not well configured.**
    [warn] module not found: com.google.inject.extensions#guice-multibindings;4.0-beta4
    **[warn] ==== local: tried
    [warn] /Users/maatary/.ivy2/local/com.google.inject.extensions/guice-multibindings/4.0-beta4/ivys/ivy.xml**
    [warn] ==== public: tried
    [warn] http://repo1.maven.org/maven2/com/google/inject/extensions/guice-multibindings/4.0-beta4/guice-multibindings-4.0-beta4.pom
    [warn] ==== Local Maven Repository: tried
    [warn] file:///Users/maatary/.m2/repository/com/google/inject/extensions/guice-multibindings/4.0-beta4/guice-multibindings-4.0-beta4.pom
    [info] Resolving jline#jline;2.12 ...
    [warn] ::::::::::::::::::::::::::::::::::::::::::::::
    [warn] :: UNRESOLVED DEPENDENCIES ::
    [warn] ::::::::::::::::::::::::::::::::::::::::::::::
    [warn] :: com.google.inject.extensions#guice-assistedinject;4.0-beta4: not found
    [warn] :: com.google.inject.extensions#guice-multibindings;4.0-beta4: not found

    这是缓存内容:

    /Users/maatary/.ivy2/cache/com.google.inject.extensions

    extensions-parent guice-assistedinject guice-multibindings

    您在每个文件夹中的位置:

    ivy-4.0-beta4.xml ivydata-4.0-beta4.properties
    ivy-4.0-beta4.xml.original

    其他最后 2 个文件夹还包含:

    一个 jars、src 和 docs 文件夹。在 jar 里,你发现 jar 被拿来了。

    例如

    在辅助注入(inject)的 jars 文件夹中,您有:

    guice-assistedinject-4.0-beta4.jar

    它的ivy.xml如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
    <info organisation="com.google.inject.extensions"
    module="guice-assistedinject"
    revision="4.0-beta4"
    status="release"
    publication="20140320225220"
    >
    <description homepage="" />
    <m:properties__guice.with.no_aop>true</m:properties__guice.with.no_aop>
    <m:properties__gpg.skip>true</m:properties__gpg.skip>
    <m:properties__project.build.sourceEncoding>UTF-8</m:properties__project.build.sourceEncoding>
    <m:properties__guice.api.version>1.4</m:properties__guice.api.version>
    <e:sbtTransformHash>7174be3135c2a95a21c158fb6beb5a9621b5b898</e:sbtTransformHash>
    <m:properties__guice.with.jarjar>true</m:properties__guice.with.jarjar>
    <m:maven.plugins>null__maven-gpg-plugin__1.4|null__maven-gpg-plugin__1.4|null__maven-remote-resources-plugin__null|org.codehaus.mojo__animal-sniffer-maven-plugin__null|org.apache.felix__maven-bundle-plugin__null|null__mav\
    en-source-plugin__null|null__maven-javadoc-plugin__null|null__maven-gpg-plugin__1.4|null__maven-gpg-plugin__1.4|null__maven-remote-resources-plugin__null|org.codehaus.mojo__animal-sniffer-maven-plugin__null|org.apache.felix__maven-bundle\
    -plugin__null|null__maven-source-plugin__null|null__maven-javadoc-plugin__null</m:maven.plugins>
    </info>
    <configurations>
    <conf name="default" visibility="public" description="runtime dependencies and master artifact can be used with this conf" extends="runtime,master"/>
    <conf name="master" visibility="public" description="contains only the artifact published by this module itself, with no transitive dependencies"/>
    <conf name="compile" visibility="public" description="this is the default scope, used if none is specified. Compile dependencies are available in all classpaths."/>
    <conf name="provided" visibility="public" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
    <conf name="runtime" visibility="public" description="this scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath\
    ." extends="compile"/>
    <conf name="test" visibility="private" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases." extends\
    ="runtime"/>
    <conf name="system" visibility="public" description="this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repos\
    itory."/>
    <conf name="sources" visibility="public" description="this configuration contains the source artifact of this module, if any."/>
    <conf name="javadoc" visibility="public" description="this configuration contains the javadoc artifact of this module, if any."/>
    <conf name="optional" visibility="public" description="contains all optional dependencies"/>
    </configurations>
    <publications>
    <artifact name="guice-assistedinject" type="jar" ext="jar" conf="master"/>
    </publications>
    <dependencies>
    <dependency org="com.google.inject" name="guice" rev="4.0-beta4" force="true" conf="compile->compile(*),master(*);runtime->runtime(*);test->runtime(*),master(*)">
    <artifact name="guice" type="jar" ext="jar" conf="compile,runtime"/>
    <artifact name="guice" type="jar" ext="jar" conf="test" m:classifier="tests"/>
    </dependency>
    <dependency org="cglib" name="cglib" rev="3.1" force="true" conf="test->runtime(*),master(*)">
    <exclude org="asm" module="asm" name="*" type="*" ext="*" matcher="exact"/>
    </dependency>
    <dependency org="org.ow2.asm" name="asm" rev="5.0" force="true" conf="test->runtime(*),master(*)"/>
    <dependency org="junit" name="junit" rev="4.11" force="true" conf="test->runtime(*),master(*)"/>
    </dependencies>
    </ivy-module>

    它的属性文件如下:
    #ivy cached data file for com.google.inject.extensions#guice-assistedinject;4.0-beta4                                                                                                                                                         
    #Sun Aug 17 20:44:39 CEST 2014
    artifact\:guice-assistedinject\#src\#jar\#1257084071.is-local=false
    artifact\:ivy\#ivy\#xml\#-1879642188.exists=true
    artifact\:guice-assistedinject\#src\#jar\#1257084071.exists=true
    artifact\:ivy\#ivy\#xml\#-1879642188.location=http\://repo1.maven.org/maven2/com/google/inject/extensions/guice-assistedinject/4.0-beta4/guice-assistedinject-4.0-beta4.pom
    artifact\:guice-assistedinject\#pom.original\#pom\#1062568006.is-local=false
    artifact\:guice-assistedinject\#jar\#jar\#-589994656.is-local=false
    artifact\:guice-assistedinject\#pom.original\#pom\#1062568006.location=http\://repo1.maven.org/maven2/com/google/inject/extensions/guice-assistedinject/4.0-beta4/guice-assistedinject-4.0-beta4.pom
    artifact\:guice-assistedinject\#jar\#jar\#-589994656.location=http\://repo1.maven.org/maven2/com/google/inject/extensions/guice-assistedinject/4.0-beta4/guice-assistedinject-4.0-beta4.jar
    artifact\:guice-assistedinject\#doc\#jar\#-1786980107.location=http\://repo1.maven.org/maven2/com/google/inject/extensions/guice-assistedinject/4.0-beta4/guice-assistedinject-4.0-beta4-javadoc.jar
    artifact\:guice-assistedinject\#pom.original\#pom\#1062568006.exists=true
    artifact\:guice-assistedinject\#doc\#jar\#-1786980107.exists=true
    artifact\:ivy\#ivy\#xml\#-1879642188.is-local=false
    artifact\:guice-assistedinject\#doc\#jar\#-1786980107.is-local=false
    artifact\:guice-assistedinject\#src\#jar\#1257084071.location=http\://repo1.maven.org/maven2/com/google/inject/extensions/guice-assistedinject/4.0-beta4/guice-assistedinject-4.0-beta4-sources.jar
    artifact\:guice-assistedinject\#jar\#jar\#-589994656.exists=true

    最佳答案

    Caching and Configuration .

    When offline := true, remote SNAPSHOTs will not be updated by a resolution, even an explicitly requested update. This should effectively support working without a connection to remote repositories. Reproducible examples demonstrating otherwise are appreciated. Obviously, update must have successfully run before going offline.



    此功能可能适合您,也可能不适合您,但它旨在解决您的情况。
    试试看,如果不行,请在 Github 上提出问题。

    关于sbt - 如何设置 sbt 以便在联机时获取所有必要的依赖项,然后让我脱机工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25348793/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com