İksir bağımlılık: edeliver ile oluştururken AMQP proje çatısı bulunmayan (+ içki)

oy
0

Ben bir bağımlılık ile sadece basit bir uygulama geliştirmiştir bir şemsiye projesi var AMQP anda. Her şey yerel çalışıyor ama birlikte inşa çalıştığımda olsun edeliver inşa salınımını mix : bulunamadı AMQP benim kodunu derlemek çalıştığında.

Ben yapı ana bilgisayara gidip uygulamayı derlerken elle orada da gayet iyi çalışıyor. Ayrıca ben bağımlılıkları getirilirken gayet çalıştı edeliver ayıklama günlüğünden görebilirsiniz.

Bunun bir şemsiye proje olduğu için edeliver başarısız şüphelenen. Bir sonraki şemsiyesi olmadan bu deneyeceğim ama bu tabii ki şemsiye proje ile çalışmaya almak istiyorum.

Hata aşağıdaki gibidir:

Derleme 2 dosya (.ex)

== Dosya lib / heartbeat_consumer.ex üzerinde Derleme hatası == ** (CompileError) lib / heartbeat_consumer.ex: 3: modül AMQP yüklü değil ve bulunamadı (iksir) genişleyen makro: Kernel.use / 1 lib / heartbeat_consumer Kernel.ParallelCompiler.spawn_compilers anonim fn / 4/1: .ex: 3: HeartBeatConsumer (modül) (iksir) lib / çekirdek / parallel_compiler.ex: 116

  • hatası '\ nBu uzaktan komut başarısız oldu:

    builder@buildhost.net

komut çıkış yukarıda gösterilmiştir ve bu ana yürütülen komut hata ayıklama amacıyla aşağıdaki basılır:

Çıkış durumu 1 başarısız oldu: \ N [f ~ / .profile] && kaynak ~ / .profile set -e cd / tmp / edeliver / myapp / oluşturur, [= demiri, karışımı]; ardından [[ ! = true]] && ./rebar temiz skip_deps = true dosyaları derlemek için inşaat demirini kullanarak echo || [= Karışımı karışımı] elif derleme ./rebar [= karışımı karışımı] &&; ardından deps mix sürümü 1.3.0 için derlenmiş gerekip gerekmediğini kontrol etme echo # bkz https://github.com/boldpoker/edeliver/issues/94 | eğer karışım version grep '\' 'Karışım 1.3.0' \ ''> / dev / null 2> ve 1 'dir; Daha sonra APP = abotti_server MIX_ENV = prod deps.compile fi mix mix versiyonu 1.3.0 kullanıldığı için Deps Derleme echo eğer [[ = true]]; Daha sonra APP = MIX_ENV = prod AUTO_VERSION = SKIP_RELUP_MODIFICATIONS = RELUP_MODIFICATION_MODULE = abotti_server mix derleme yapmak başka APP = MIX_ENV = prod AUTO_VERSION = SKIP_RELUP_MODIFICATIONS = RELUP_MODIFICATION_MODULE = abotti_server mix [= mix mix] fi elif temiz derlemek yoktur; ardından dosyaları derlemek için karışımını kullanarak echo eğer [[ = true]]; daha sonra, eğer [ [N]]; Sonra hint_message işe yaramaz --auto-sürümü --skip-mix-temiz birlikte kullanılması ' '\'!' \ '' fi APP = abotti_server MIX_ENV = prod AUTO_VERSION = DALLAN master SKIP_RELUP_MODIFICATIONS = RELUP_MODIFICATION_MODULE = mix deps.compile başka APP = abotti_server MIX_ENV = prod AUTO_VERSION = DALLAN ana SKIP_RELUP_MODIFICATIONS = RELUP_MODIFICATION_MODULE = derlemek mi karışımı temiz, deps.compile yapmak, 'fi fi \ n derlemek

ve benim uygulamalar mix.exs şu şekildedir:

defmodule AbottiServer.Mixfile do
  use Mix.Project

  def project do
    [app: :abotti_server,
     version: 0.1.0,
     build_path: ../../_build,
     config_path: ../../config/config.exs,
     deps_path: ../../deps,
     lockfile: ../../mix.lock,
     elixir: ~> 1.3,
     build_embedded: Mix.env == :prod,
     start_permanent: Mix.env == :prod,
     deps: deps]
  end

  # Configuration for the OTP application
  #
  # Type mix help compile.app for more information
  def application do
    [applications: [:logger, :amqp, :edeliver],
     mod: {AbottiServer, []}]
  end

  # Dependencies can be Hex packages:
  #
  #   {:mydep, ~> 0.3.0}
  #
  # Or git/path repositories:
  #
  #   {:mydep, git: https://github.com/elixir-lang/mydep.git, tag: 0.1.0}
  #
  # To depend on another app inside the umbrella:
  #
  #   {:myapp, in_umbrella: true}
  #
  # Type mix help deps for more examples and options
  defp deps do
    [
      {:amqp_client, git: https://github.com/dsrosario/amqp_client.git, branch: erlang_otp_19, override: true},
      {:amqp, ~> 0.1.4},
      {:edeliver, ~> 1.4.0},
      {:distillery, >= 0.8.0, warn_missing: false}
  ]
  end
end

Şimdi oldukça biraz bununla mücadele sonra, o konuda problem burada devam sayısız gidecekseniz fark etti.

  1. Gerçekten neden olan çalışmıyor temizleyin: AMQP bulunamadı hatası. --skip-mix-temiz anahtarı geçici giderildiği.
  2. O edeliver sonra exrm veya damıtım kullanmalısınız eğer karar veremez şikayet ediyor. Tamam bu yüzden, ben şemsiye proje kökünde release.init karıştırın etmedi. Ayrıca proje çatısı köküne klasörü .deliver taşındı kök mix.exs için edeliver ve damıtım Deps ekledi. (Ben şu sağ olup olmadığını hiçbir fikrim yok). mix sürümü ile test edilmiştir ve Evet, içki inşa lokal olarak çalışır.
  3. Derleme hala inşa ana bilgisayarda işe yaramadı: AMQP derlemek olmaz. Eklenen {: amqp_client, git: https://github.com/dsrosario/amqp_client.git , şube: erlang_otp_19, geçersiz kılma: true} AMQP kullanıyor uygulaması için-PS için. Yani şimdi, Derleyen çalıştı erlang 19 sahiptir inşa ana bilgisayarda çalışır.
  4. Şimdi olsun: / edeliver / abotti / Benim RELEASE_DIR .deliver klasörde benim yapılandırma ile yanlış araçları tahmin apps / abotti / rel / abotti / bültenleri / / kurar / tmp: üretilen sürümünü tespit edemedi.

Tamam ben edeliver wiki bir şemsiye proje için yapılacak ne diyor her şeyi yaptı sonra Özetle burada hala temizleme, ve dir sorunlar devam bırakın. Ben sadece --skip-mix-temiz derlemek için edeliver alabilirim ve RELEASE_DIR sayısız ayarlamalar denedim ama her zaman sürümü hatasını tespit edemedi olsun.

Herhangi bir yardım çok takdir edilecektir.

Oluştur 25/08/2016 saat 08:28
kaynak kullanıcı
Diğer dillerde...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more