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
라이언은 줄곧 이런 방식으로 우리를 위해 일하고 있다.

토론 #셋

재미있다. 이것이 현재의 해결 방법일 수도 있다.
나는 여전히 이것이 합리적인 문제라고 생각한다. 왜냐하면 Maventype의 같은 모델도 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

  • Leiningen/석류에서:classifier는 파일 확장자 이전의 접두사에 항상 비치고:extension는 파일 확장자에 항상 비친다.
  • 그러나 Maven에서는 classifier 분류기 접미사에 비치지만 type 분류기 접미사와 파일 확장자를 완전히 불투명하게 확인할 수 있습니다.예를 들어 typetest-jar은 분류기 접미사tests를 생성합니다(!)및 파일 확장자jar입니다.Leiningen에서 지원하는 :type 속성은 아무런 가치도 증가하지 않으며, Maven의 추악한 구석만 복제하여 간단한 디자인을 복잡하게 만들 수 있습니다.어쨌든 이런 기능은 먼저 석류를 가리키는 것이 좋다.이것이 바로 내가 우리가 이곳에서 어떤 일을 해서는 안 된다고 생각하는 이유이다. 우리는 이 문제를 해결할 수 있다.

    토론 #6

    동의합니다.나는 Maven에서 묘사한 행위가 일찌감치 추가되었다고 생각한다. 뒤로 호환되기 위해서는 반드시 보류해야 한다.사용:classifier은 일종의 방법이다.

    좋은 웹페이지 즐겨찾기