質問

使用したいと思いleiningenの構築とっclojureます。があるのを修正。cljだすちからjar地域ディレクトリ?

しているのか教えてください独自の瓶入れると、アップロードできな公repos.

また、できるleiningenれを維持するために使用する"lib"のディレクトリclojure。合気のclojure共有するjarであり、たくないの維持コードのコピーを個別におすすめします。

感謝

役に立ちましたか?

解決

き個人jarファイ lib/ ているclasspathの目的 lein swank のこれはも敗戦のポイントを用い依存関係管理ツールがない場合は実際に したい その依存関係管理し、取り扱うLeiningenとして"オープンソース依存関係管理ツール"もご注意ください lein clean.

の状況がより複雑であり、より多くの民間の瓶、進化させ、必要なものにバージョン管理情報としてアカウント-アーサーズという民間のMavenレポします。


(人事を意味しLeiningen固有部分のカットオフポットを表示一部の観光スポット継続しては、以下の一般構築/の依存関係管理ツー物語Clojure土地を含むいくつかのリンクとなっていると思いが非常に重宝のまま利用可能です。)

また、しかしながら、ユニバーサル契約の問題である最高のビルドツールのためのClojure、Leiningenが集まるmindshareも常に気を特徴とポーランド--意味がでまだ完了していないのです。こちらの見積もりからスチュアートHallowayの著者の語用論の本棚の"プログラミングClojure":"私2c:Leiningenの重要なステップがたっぷりない"と信じさせられています。 の掲載、非常に興味深い議論を再ビルドツールのClojureスペースの Leiningen,Clojureやライブラリ:と思欠? スレッドのClojure Googleグループ多くの参加者が具体的に言及の地域の依存関係に含まれていない他のリポジトリ、その他、精巧でのソリューションで習ったようなシナリオ.かもしれませんがもし何かあればあるを解決できる問題を現在/う問題を解決し、今後、機能セットは成熟?

とにかく、こLeiningenないもったいないで準備した複雑なシナリオ.を感じていることがtrueの場合(とんだ後は民間レポ)このメソッドをオーバーライドが、こちらのリンクにmavenに基づく代替案の中から、上記のスレッド: polyglot maven, clojure-maven-plugin; このブログの投稿 を目指す人々の役に立つ活動に活用しようとしていmavenとClojure.ましたけれども、私の記憶では、Meikel Brandmeyer(もう彼のオンライン対応のkotarak使用で、Gradle(Groovyの構築システム)のプラグイン干ClojureというClojuresque;かでは絶対手に入らないのですが、自分のとして非常に良いのではないかと思いもつく姉妹編ともいえるが、明後日が入試なので、非常に素敵な建築法で、いと思いたいmaven--るものはプラスそれ自体はあります。:-)

他のヒント

あなたのproject.cljファイル内のリソース・パスのの

だけの を使用。私は、例えば、それを使用しますSiebelサーバーに接続します。ちょうど私のプロジェクトディレクトリにのリソースのディレクトリを作成し、そこにjarファイルをコピーしました。しかし、もちろん、あなたは、より一般的なディレクトリを使用することができます:

(defproject test-project "0.1.0-SNAPSHOT"
:description "Blah blah blah"
...
:resource-paths ["resources/Siebel.jar" "resources/SiebelJI_enu.jar"])

そして、のレインREPL のから私は例えば、SiebelのデータBeanインスタンスを作成することができます。

(def sbl (com.siebel.data.SiebelDataBean.))
(.login sbl "siebelServer" "user" "password")
...

あなたは、より一般的なディレクトリのために、このようなあなたのパスの指定に使用すると、コースのワイルドカードを使用することができますの新しいバージョンのJavaを使用している場合:

:resource-paths ["/tmp/SiebelJars/*"]
  1. プロジェクト内にディレクトリを作成します。

    mkdir maven_repository

  2. ローカル jar をこのリポジトリに追加します。

    たとえば、このコマンドは jaad-0.8.3.jar Mavenリポジトリへのファイル:

    mvn deploy:deploy-file -Dfile=jaad-0.8.3.jar -DartifactId=jaad -Dversion=0.8.3 -DgroupId=jaad -Dpackaging=jar -Durl=file:maven_repository

  3. 以下を追加します project.clj

    :repositories {"local" "file:maven_repository"}

  4. 今では常連の lein deps 動作するはずです:

    $ lein deps Downloading: jaad/jaad/0.8.3/jaad-0.8.3.pom from local Transferring 0K from local [WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for jaad/jaad/0.8.3/jaad-0.8.3.pom - IGNORING

jar はプロジェクトにチェックインされ、インターネットからダウンロードされないため、この警告は無視できます。

元のソース: Leiningen でのローカル JAR の使用 (コピーしてから変更されました)

私は、ライブラリを開発する場合lein pom; lein jar; lein installがうまく機能見つけます。

が開発されているライブラリと、それは必要な:repositories fooというずにそれを使用しますが必要なアプリケーションでこれを行います。

<時間>

あるいは、lein do pom, jar, installはわずかにより簡潔である。

<時間>

これは、他の:dependencies [[project-name "version"]]のようなライブラリを呼び出すことができます。

私は「正しい」アプローチは、民間のMavenリポジトリを作成にあると信じてあなたは、単一の場所で瓶と、すべての枝などを保存することができるようにする、変更をピックアップします。これは、あなたがやって何のためにやり過ぎかもしれません。これらは簡単な方法である場合、私は興味があります。

https://github.com/kumarshantanu/lein-localrepo の<:

あなたはプラグインlein-localrepoを使用するようなことがあり/ P>

最近の開発は、Leiningenを用フィルのs3-wagon-privateプラグインです: https://github.com/technomancy/ S3-ワゴン-プライベート

これは、あなたがプライベートリモートレポに成果物を公開できるようにする必要があります。

これらのソリューションのどれもが私を働きました。代わりに、私はローカルリポジトリを設置し、地元のレポでjarファイルをインストールするためにMavenを使用して、私のproject.cljに地元のレポを追加した。

コマンドラインでます:

mvn deploy:deploy-file -DgroupId=local -DartifactId=bar \
    -Dversion=1.0.0 -Dpackaging=jar -Dfile=bar.jar \
    -Durl=file:repo

そして、私はこのように私のproject.cljを書きます:

(defproject foo "0.1.0-SNAPSHOT"
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [local/bar "1.0.0"]]
  :repositories {"project" "file:repo"})

それがお役に立てば幸いです。

[参考: https://gist.github.com/stuartsierra/3062743

多分<これを見ているのhref =「https://stackoverflow.com/questions/2229757/maven-add-a-dependency-to-a-jar-by-relative-path/2230464#2230464」 >前の回答に、私はセットアップにあなたのjarファイルをインストールすることができている(file://を介してアクセスする)プロジェクトへのローカルリポジトリをステップバイステップのインストラクションを提供します。

依存関係のjarファイルを構築する方法を私の解決策をお試しください ます。http:// middlesphere-1 .blogspot.ru / 2014/06 /ハウツー - メイクジャーとの依存関係-using.htmlする

最良のオプションは、プライベート JFrog/Nexus アーティファクトリをセットアップし、そこにスナップショット/リリースをデプロイし、そのアーティファクトリを project.clj にリポジトリとして追加することです。

他の簡単な方法は次のとおりです

静的HTTP 最も単純な種類のプライベート リポジトリは、静的ファイルでいっぱいのディレクトリを指す Web サーバーです。Leiningen が実行されているマシンのローカルなディレクトリにある場合は、:repositories で file:/// URL を使用してそのようにデプロイできます。

SCPSSH 公開キーを使用してサーバーがすでにセットアップされている場合、scp トランスポートはプライベート依存関係を公開および使用する簡単な方法です。defproject 内に以下を配置します。

:plugins [[org.apache.maven.wagon/wagon-ssh-external "2.6"]]
:repositories [["releases" "scp://somerepo.com/home/repo/"]]

次に、以下を defproject の外側に配置します。

(cemerick.pomegranate.aether/register-wagon-factory!
 "scp" #(let [c (resolve 'org.apache.maven.wagon.providers.ssh.external.ScpExternalWagon)]
          (clojure.lang.Reflector/invokeConstructor c (into-array []))))

HTTP 経由でリポジトリ ディレクトリを提供するように nginx などを設定している場合は、scp トランスポートを使用してリポジトリにデプロイし、http 経由でリポジトリから消費することもできます。

注:Clojar への SCP のデプロイはサポートされなくなりました

元のソースはここにあります https://github.com/technomancy/leiningen/blob/stable/doc/DEPLOY.md

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top