2016-02-05 54 views
1

我在本地構建了一個clojure庫(lib1)並將它發佈到github和clojars,然後我更改了它的版本並在本地發佈。在本地發佈的clojure庫沒有找到

lein install 

# => 
Created /home/me/projects/clojure/my-lib1/target/my-lib1-0.1.0.jar 
Wrote /home/me/projects/clojure/my-lib1/pom.xml 
Installed jar and pom into local repo. 

然後創建另一個項目(項目2),並在它這樣做:

# project.clj: 

;;............. 
    :license {:name "Eclipse Public License" 
      :url "http://www.eclipse.org/legal/epl-v10.html"} 
    :dependencies [[org.clojure/clojure "1.7.0"] 
       [my-lib1 "0.1.0"]] 

當我跑了 「雷音的DEP」 我得到這個:

Could not find artifact my-lib1:my-lib1:jar:0.1.0 in central (https://repo1.maven.org/maven2/) 
Could not find artifact my-lib1:my-lib1:jar:0.1.0 in clojars (https://clojars.org/repo/) 
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. 

爲什麼「百磅「和」clojars「?爲什麼不在本地尋找它?

在當地回購平方米它的全稱是和路徑

是:

~/.m2/repository/org/clojars/my_nickname/my-lib1/ 
+1

你檢查,你期望得到的罐子沒有在'。m2'本地目錄?也可以用相同的名稱來調用它,但最後會說'-SNAPSHOT',這意味着僅僅爲了'lein install'而改變lein項目文件。 –

+0

@ChrisMurphy,爲什麼它不在m2?沒有錯誤。更新我的問題。有兩個版本0.1.0和0.1.0-snaphot。 –

回答

0

也許雷音仍然認爲罐子資源是外部的。事實上,即使目錄中有'clojars'這個名字,在這方面也很可疑。 (我的.m2目錄沒有這樣的外部名稱)。

如果您使用不同的文件名 - 例如將-SNAPSHOT放在最後,然後安裝,那麼lein應該知道-SNAPSHOT文件是本地文件,並在本地查找它。

如果這對你有效,那麼很好。我意識到它並不完全回答你的問題。我不明白爲什麼萊恩不總是在外部和本地看起來。但那'clojars'是可疑的。

編輯看到我的其他答案 - 'clojars'很可能來自你的lein項目的名字。

1

如果.m2的路徑是 「〜/ .m2目錄/庫/組織/ clojars/my_nickname /我-LIB1 /」,那麼你的project.clj應該是這樣的:

# project.clj: 

;;............. 

:dependencies [[org.clojure/clojure "1.7.0"] 
       [my_nickname/my-lib1 "0.1.0"]] 

要查找路徑,你可以查看.m2中生成的數據。 採取任意例子,因爲你沒有發佈你的。

對於maven-metadata-local.xml這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<metadata> 
    <groupId>cljsjs</groupId> 
    <artifactId>react-mdl</artifactId> 
    <versioning> 
    <release>1.3.0-0</release> 
    <versions> 
     <version>1.3.0-0</version> 
    </versions> 
    <lastUpdated>20160202194200</lastUpdated> 
    </versioning> 
</metadata> 

還是一個.pom這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>cljsjs</groupId> 
    <artifactId>react-mdl</artifactId> 
    <version>1.3.0-0</version> 
    <name>react-mdl</name> 
    <description>React Components wrapper for Material Design Lite UI http://tleunen.github.io/react-mdl/</description> 
    <url>http://tleunen.github.io/react-mdl/</url> 
    ... 

你會使用[cljsjs/react-mdl "1.3.0-0"]那些,因爲語法的groupId/artifactId的。如果它們都相同,你可以只放一個(如你第一次嘗試)。因此,檢查您的~.m2存儲庫什麼是正確的領域。

+0

同樣的錯誤。 –

+0

@PeterT。我編輯了我的答案,請檢查你在'〜/ .m2/repository/org/clojars/my_nickname/my-lib1/0.1.0/my-lib-0.1.0.pom'中的內容(例如)。 – nha

0

我剛剛得到同樣的問題,並修復它。在我的情況下,它是project.clj文件的defproject。這是一個不會在本地看:使得它在本地再看看

(defproject org.clojars.cjmurphy/default-db-format "0.1.0" 

把它回本:

(defproject default-db-format "0.1.0" 
相關問題