Leiningen은 "test jar"유형의 종속 관계를 해결하지 못한 것 같습니다.
4725 단어 leiningen
묘사
제가 뭘 잘못했는지 모르겠지만 프로젝트에'testjar'유형의 의존항을 포함할 때 문제가 발생했습니다.Maven과 동일한 의존 항목이 유효하다는 것을 확인했습니다.프로젝트입니다.clj:
(defproject clatrix/clatrix "0.5.1-SNAPSHOT"
:description "Because using matrices in Clojure needs to not suck."
:url "http://tel.github.com/clatrix"
:license {:name "MIT License"
:url "http://www.opensource.org/licenses/MIT"}
:resource-paths ["native"]
:plugins [[lein-expectations "0.0.8"]]
:dependencies [[org.clojure/clojure "1.8.0-alpha4"]
[slingshot "0.12.2"]
[org.jblas/jblas "1.2.3"]
[net.mikera/core.matrix "0.40.0"]]
:profiles {:dev {:dependencies [[criterium/criterium "0.4.3"]
[net.mikera/core.matrix "0.40.0" :type "test-jar"]
[expectations "2.1.1"]]}})
이것은 lein deps :tree
의 결과이다 [criterium "0.4.3" :scope "test"]
[expectations "2.1.1" :scope "test"]
[joda-time "2.7" :scope "test"]
[junit "4.12" :scope "test"]
[org.hamcrest/hamcrest-core "1.3" :scope "test"]
[org.clojure/clojurescript "0.0-3196" :scope "test"]
[com.google.javascript/closure-compiler "v20150126" :scope "test"]
[args4j "2.0.26" :scope "test"]
[com.google.code.findbugs/jsr305 "1.3.9" :scope "test"]
[com.google.code.gson/gson "2.2.4" :scope "test"]
[com.google.guava/guava "18.0" :scope "test"]
[com.google.javascript/closure-compiler-externs "v20150126" :scope "test"]
[com.google.protobuf/protobuf-java "2.5.0" :scope "test"]
[com.google.truth/truth "0.24" :scope "test"]
[org.clojure/data.json "0.2.6" :scope "test"]
[org.clojure/google-closure-library "0.0-20140718-946a7d39" :scope "test"]
[org.clojure/google-closure-library-third-party "0.0-20140718-946a7d39" :scope "test"]
[org.clojure/tools.reader "0.9.1" :scope "test"]
[org.mozilla/rhino "1.7R5" :scope "test"]
[net.mikera/core.matrix "0.40.0" :scope "test"]
[org.clojure/tools.macro "0.1.5" :scope "test"]
[org.clojure/clojure "1.8.0-alpha4"]
[org.clojure/tools.nrepl "0.2.10" :exclusions [[org.clojure/clojure]]]
[org.jblas/jblas "1.2.3"]
[slingshot "0.12.2"]
따라서maincore.matrix
이 포함된 것 같지만'testjar'부품이 포함되어 있지 않습니다.토론 #1
이 문제를 해결할 기회가 있습니까?현재는 독립 핵심으로 하여금 적당한 테스트를 할 수 없게 한다.Leiningen의 행렬 실현--유일한 해결 방법은 마븐을 추천하는 것이다!토론 #2
사용해 봤어요classifier
?우리는 프로젝트에서 테스트 탱크를 자주 사용한다. 예를 들어 다음과 같다.https://github.com/puppetlabs/puppetserver/blob/6e7d274db90f4f22d87caec545e541d36a99f64c/project.clj#L112-L114
라이언은 줄곧 이런 방식으로 우리를 위해 일하고 있다.
토론 #셋
재미있다. 이것이 현재의 해결 방법일 수도 있다.나는 여전히 이것이 합리적인 문제라고 생각한다. 왜냐하면 Maven
type
의 같은 모델도 Maven토론 #4
에 적용되기 때문이다. 이것은 디자인에서 비롯된 것이다. Leiningen은 서로 다른 기호를 사용했기 때문이다.레닌겐(즉 석류)은 전혀 모른다:type
.Maven의 테스트jar 유형은 Leiningen에 분류기
tests
가 있는 의존에 의존합니다.<dependency>
<groupId>net.mikera</groupId>
<artifactId>core.matrix</artifactId>
<version>0.40.0</version>
<type>test-jar</type>
</dependency>
[net.mikera/core.matrix "0.40.0" :classifier "tests"]
이 두 가지 방법은 모두 공작물net/mikera/core.matrix/0.40.0/core.matrix-0.40.0-tests.jar
의 문제를 해결했다.토론 #5
:classifier
는 파일 확장자 이전의 접두사에 항상 비치고:extension
는 파일 확장자에 항상 비친다.classifier
분류기 접미사에 비치지만 type
분류기 접미사와 파일 확장자를 완전히 불투명하게 확인할 수 있습니다.예를 들어 typetest-jar
은 분류기 접미사tests
를 생성합니다(!)및 파일 확장자jar
입니다.Leiningen에서 지원하는 :type
속성은 아무런 가치도 증가하지 않으며, Maven의 추악한 구석만 복제하여 간단한 디자인을 복잡하게 만들 수 있습니다.어쨌든 이런 기능은 먼저 석류를 가리키는 것이 좋다.이것이 바로 내가 우리가 이곳에서 어떤 일을 해서는 안 된다고 생각하는 이유이다. 우리는 이 문제를 해결할 수 있다.토론 #6
동의합니다.나는 Maven에서 묘사한 행위가 일찌감치 추가되었다고 생각한다. 뒤로 호환되기 위해서는 반드시 보류해야 한다.사용:classifier
은 일종의 방법이다.
Reference
이 문제에 관하여(Leiningen은 "test jar"유형의 종속 관계를 해결하지 못한 것 같습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/technomancy/leiningen/issues/1975텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)