Leiningen error: Could not transfer artifact no supported algorithms found
Leiningen error: Could not transfer artifact no supported algorithms found
我正在尝试在我的 Clojure 应用程序中使用 jar 文件。我以前从未这样做过,但是阅读网上的各种文章后,我开始在我的项目中这样做:
mkdir maven_repository
mvn install:install-file -DgroupId=local -DartifactId=nlp -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=original-nlp-1.0-SNAPSHOT.jar -DlocalRepositoryPath=maven_repository
在我的 project.clj 文件中我有:
[local/nlp "1.0-SNAPSHOT"]
但是当我 运行:
lein clean
lein uberjar
我收到此错误:
Could not transfer artifact local:nlp:pom:1.0-SNAPSHOT from/to local (/salesslick/maven_repository/): no supported algorithms found
我检查过这样的事情:
lein uberjar
(Retrieving local/nlp/1.0-SNAPSHOT/nlp-1.0-SNAPSHOT.pom from local)
(Could not transfer artifact local:nlp:pom:1.0-SNAPSHOT from/to local (file:/Users/charlottesville/projects/ollio/salesslick/maven_repository/): no supported algorithms found)
This could be due to a typo in :dependencies or network issues.
If you are behind a proxy, try setting the 'http_proxy' environment variable.
Uberjar aborting because jar failed: Could not resolve dependencies
cat local/nlp/1.0-SNAPSHOT/nlp-1.0-SNAPSHOT.pom
cat maven_repository/local/nlp/1.0-SNAPSHOT/nlp-1.0-SNAPSHOT.pom
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>local</groupId>
<artifactId>nlp</artifactId>
<version>1.0-SNAPSHOT</version>
<description>POM was created from install:install-file</description>
</project>
lein --version
Leiningen 2.4.1 on Java 1.8.0_25 Java HotSpot(TM) 64-Bit Server VM
我做错了什么?
准时参加...
我有同样的问题,解决方案似乎是实际使用 maven 部署而不是安装。
因此命令将如下所示:
mvn deploy:deploy-file -DgroupId=local -DartifactId=bar \
-Dversion=1.0.0 -Dpackaging=jar -Dfile=bar.jar \
-Durl=file:repo
你当然还需要
:repositories {"project" "file:repo"}
在你的 defproject 和
[local/bar "1.0.0"]
在你的依赖项中。
请注意,在 -Durl=file:repo 文件中需要(虽然有点明显)并且 repo 是存储库根文件夹中的一个文件夹。
另一种完全使用 Leiningen 并忘记任何 mvn 命令来达到相同结果的方法是使用
lein deploy project local/bar 1.0.0 bar.jar
而不是上面显示的 mvn 命令。例如,这可以省去在 docker 容器上实际安装 Maven 的麻烦(根据容器 OS,这也可能很棘手)。
所有这些信息都来自 here。
我不得不自己解决这个问题。经过一番谷歌搜索后,我得到了更多
困惑,因为有太多不同的解决方案。最后,它
结果 真的 简单。
Basically, I just used the lein-localrepo plugin.
1. Add the plugin to my plugins section of profiles.clj i.e.
{:user
{:plugins [[lein-ancient "0.6.10"]
[jonase/eastwood "0.2.3"]
[lein-kibit "0.1.3"]
[lein-bikeshed "0.4.1"]
[lein-localrepo "0.5.3"]]
:dependencies [[slamhound "1.5.5"]]
:aliases {"slamhound" ["run" "-m" "slam.hound"]}}}
运行 lein localrepo coords to get the artifact/id stuff
lein localrepo 坐标 jcifs-1.3.18.jar
将 jar 添加到我的 .m2 存储库
lein localrepo 安装 jcifs-1.3.18.jar jcifs/jcifs 1.3.18
将依赖添加到我的 project.clj
运行 lein deps 确保一切看起来都很好
在我的 clj 文件中,在 ns header
中添加了必要的 :import 行
工作完美!
这确实意味着如果我想在另一台机器上构建它,jar 文件有
要添加到该系统上的 .m2。理论上,您可以指定一个
项目特定的存储库目录,然后将其全部捆绑起来,但我更喜欢
把我的罐子放在一个地方。
我正在尝试在我的 Clojure 应用程序中使用 jar 文件。我以前从未这样做过,但是阅读网上的各种文章后,我开始在我的项目中这样做:
mkdir maven_repository
mvn install:install-file -DgroupId=local -DartifactId=nlp -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=original-nlp-1.0-SNAPSHOT.jar -DlocalRepositoryPath=maven_repository
在我的 project.clj 文件中我有:
[local/nlp "1.0-SNAPSHOT"]
但是当我 运行:
lein clean
lein uberjar
我收到此错误:
Could not transfer artifact local:nlp:pom:1.0-SNAPSHOT from/to local (/salesslick/maven_repository/): no supported algorithms found
我检查过这样的事情:
lein uberjar
(Retrieving local/nlp/1.0-SNAPSHOT/nlp-1.0-SNAPSHOT.pom from local)
(Could not transfer artifact local:nlp:pom:1.0-SNAPSHOT from/to local (file:/Users/charlottesville/projects/ollio/salesslick/maven_repository/): no supported algorithms found)
This could be due to a typo in :dependencies or network issues.
If you are behind a proxy, try setting the 'http_proxy' environment variable.
Uberjar aborting because jar failed: Could not resolve dependencies
cat local/nlp/1.0-SNAPSHOT/nlp-1.0-SNAPSHOT.pom
cat maven_repository/local/nlp/1.0-SNAPSHOT/nlp-1.0-SNAPSHOT.pom
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>local</groupId>
<artifactId>nlp</artifactId>
<version>1.0-SNAPSHOT</version>
<description>POM was created from install:install-file</description>
</project>
lein --version
Leiningen 2.4.1 on Java 1.8.0_25 Java HotSpot(TM) 64-Bit Server VM
我做错了什么?
准时参加...
我有同样的问题,解决方案似乎是实际使用 maven 部署而不是安装。
因此命令将如下所示:
mvn deploy:deploy-file -DgroupId=local -DartifactId=bar \
-Dversion=1.0.0 -Dpackaging=jar -Dfile=bar.jar \
-Durl=file:repo
你当然还需要
:repositories {"project" "file:repo"}
在你的 defproject 和
[local/bar "1.0.0"]
在你的依赖项中。 请注意,在 -Durl=file:repo 文件中需要(虽然有点明显)并且 repo 是存储库根文件夹中的一个文件夹。
另一种完全使用 Leiningen 并忘记任何 mvn 命令来达到相同结果的方法是使用
lein deploy project local/bar 1.0.0 bar.jar
而不是上面显示的 mvn 命令。例如,这可以省去在 docker 容器上实际安装 Maven 的麻烦(根据容器 OS,这也可能很棘手)。
所有这些信息都来自 here。
我不得不自己解决这个问题。经过一番谷歌搜索后,我得到了更多 困惑,因为有太多不同的解决方案。最后,它 结果 真的 简单。
Basically, I just used the lein-localrepo plugin.
1. Add the plugin to my plugins section of profiles.clj i.e.
{:user
{:plugins [[lein-ancient "0.6.10"]
[jonase/eastwood "0.2.3"]
[lein-kibit "0.1.3"]
[lein-bikeshed "0.4.1"]
[lein-localrepo "0.5.3"]]
:dependencies [[slamhound "1.5.5"]]
:aliases {"slamhound" ["run" "-m" "slam.hound"]}}}
运行 lein localrepo coords to get the artifact/id stuff
lein localrepo 坐标 jcifs-1.3.18.jar
将 jar 添加到我的 .m2 存储库
lein localrepo 安装 jcifs-1.3.18.jar jcifs/jcifs 1.3.18
将依赖添加到我的 project.clj
运行 lein deps 确保一切看起来都很好
在我的 clj 文件中,在 ns header
中添加了必要的 :import 行
工作完美!
这确实意味着如果我想在另一台机器上构建它,jar 文件有 要添加到该系统上的 .m2。理论上,您可以指定一个 项目特定的存储库目录,然后将其全部捆绑起来,但我更喜欢 把我的罐子放在一个地方。