umbrella 프로젝트에서 발생한 deps 컴파일env를 프로젝트로 나누기
1973 단어 elixir
문제.
이전 코드는 하나의 리포 아래에 두었고 코드를 다시 사용하는 방식은umbrella.코드를 분리하여 서비스 간의 경계를 더욱 뚜렷하게 하기 위해서, 우리는 elixir 프로젝트를 분리하여 deps 방식으로 코드를 다시 사용합니다.deps를 컴파일할 때 기본으로 env가prod 문제입니다.
자세한 사정
일부 단원 테스트가 효력을 잃은 것을 발견하고 뒤에 다음과 같은 코드가 위치하여 모두 효력을 잃었다. if Mix.env != :prod do
xxxx
end
해결하다
참고 자료https://stackoverflow.com/que...mix 수정.exs, deps를 구축할 때 현재 믹스를 사용합니다.env. def project do
[
...
deps: deps(Mix.env()),
]
end
defp deps(env) do
[
{:ejoy_amqp, git: "https://xxx.git", env: env},
{:ejoy_utils, git: "https://xxx.git", env: env},
]
end
의 원리
mix는 응용 프로그램입니다.
mix shell
~ » which mix enjolras@ubuntu
/usr/local/bin/mix
------------------------------------------------------------
~ » cat /usr/local/bin/mix enjolras@ubuntu
#!/usr/bin/env elixir
Mix.start
Mix.CLI.main
mix.ex
use Application
@doc false
def start do
{:ok, _} = Application.ensure_all_started(:mix)
:ok
end
믹스는 자진하는 것을 볼 수 있고, 믹스도 믹스가 있다.exs file.elixir_src/lib/mix/mix.exs defmodule Mix.MixProject do
use Mix.Project
def project do
[
app: :mix,
build_per_environment: false,
version: System.version(),
escript: [main_module: Mix.CLI]
]
end
def application do
[
registered: [Mix.State, Mix.TasksServer, Mix.ProjectStack],
mod: {Mix, []},
env: [colors: []]
]
end
end
project.ex
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Elixir에서 한 번만 작업하기
일반적인 솔루션은 향후 호출자를 위해 계산된 값을 캐시하는 것이지만 콜드 캐시(또는 캐시된 값이 만료된 경우)에서는 여전히 함수가 여러 번 실행될 수 있습니다.
따라서 여러 프로세스가 GenServer 를 호출하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
if Mix.env != :prod do
xxxx
end
참고 자료https://stackoverflow.com/que...mix 수정.exs, deps를 구축할 때 현재 믹스를 사용합니다.env.
def project do
[
...
deps: deps(Mix.env()),
]
end
defp deps(env) do
[
{:ejoy_amqp, git: "https://xxx.git", env: env},
{:ejoy_utils, git: "https://xxx.git", env: env},
]
end
의 원리
mix는 응용 프로그램입니다.
mix shell
~ » which mix enjolras@ubuntu
/usr/local/bin/mix
------------------------------------------------------------
~ » cat /usr/local/bin/mix enjolras@ubuntu
#!/usr/bin/env elixir
Mix.start
Mix.CLI.main
mix.ex
use Application
@doc false
def start do
{:ok, _} = Application.ensure_all_started(:mix)
:ok
end
믹스는 자진하는 것을 볼 수 있고, 믹스도 믹스가 있다.exs file.elixir_src/lib/mix/mix.exs defmodule Mix.MixProject do
use Mix.Project
def project do
[
app: :mix,
build_per_environment: false,
version: System.version(),
escript: [main_module: Mix.CLI]
]
end
def application do
[
registered: [Mix.State, Mix.TasksServer, Mix.ProjectStack],
mod: {Mix, []},
env: [colors: []]
]
end
end
project.ex
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Elixir에서 한 번만 작업하기
일반적인 솔루션은 향후 호출자를 위해 계산된 값을 캐시하는 것이지만 콜드 캐시(또는 캐시된 값이 만료된 경우)에서는 여전히 함수가 여러 번 실행될 수 있습니다.
따라서 여러 프로세스가 GenServer 를 호출하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
~ » which mix enjolras@ubuntu
/usr/local/bin/mix
------------------------------------------------------------
~ » cat /usr/local/bin/mix enjolras@ubuntu
#!/usr/bin/env elixir
Mix.start
Mix.CLI.main
use Application
@doc false
def start do
{:ok, _} = Application.ensure_all_started(:mix)
:ok
end
defmodule Mix.MixProject do
use Mix.Project
def project do
[
app: :mix,
build_per_environment: false,
version: System.version(),
escript: [main_module: Mix.CLI]
]
end
def application do
[
registered: [Mix.State, Mix.TasksServer, Mix.ProjectStack],
mod: {Mix, []},
env: [colors: []]
]
end
end
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Elixir에서 한 번만 작업하기일반적인 솔루션은 향후 호출자를 위해 계산된 값을 캐시하는 것이지만 콜드 캐시(또는 캐시된 값이 만료된 경우)에서는 여전히 함수가 여러 번 실행될 수 있습니다. 따라서 여러 프로세스가 GenServer 를 호출하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.