#1721에 대한 보다 효과적인 대안
3491 단어 leiningen
묘사
나는 연결 목표 경로가 있는 항목을 정리하는 데 사용할 테스트를 추가했다.필요하다면, 우리는 더 많은 변두리 상황에 적응하기 위해 그것을 강화할 수 있다.프로젝트를 정리하기 위해 프로필을 활성화합니다. (약 30개의 프로필을 정의했습니다.) 정말 느려졌습니다.이런 방법은 정규 표현식을 사용하기 때문에 지금 우리는 두 가지 (더 많은) 문제가 있다
토론 #1
#1745 문제를 해결한 서브집합인 것 같다.구성 파일의:target-path
가 최상위 수준:target-path
이 아닌 하위 디렉토리의 값으로 설정된 경우 값이 지워지지 않습니다.그렇게 지도 모른다, 아마, 아마...@arohner와 @jebberjeb의 피드백을 원합니다. 왜냐하면 그들은 모두 이 기능에 참여했기 때문입니다.
토론 #2
아마도 나는 이 패치가 지원하지 않는 용례에 대해 곤혹스러울 것이다.나는:target-path
의 형식 설명자의 목적은 프로필을 통해 목표 부품을 구분하는 것이라고 생각한다.그런데 지금 다른 프로필이 :target-path
를 다른 값으로 설정할 수 있다고요?만약 격식 설명부호가 이미 그것들을 분리했다면, 왜 이렇게 해야 합니까?이상적인 용례는 무엇입니까?토론 #셋
종단면을 격리하는 방법은 여러 가지가 있다.이것가장 간단한 방법은 '%s' 문자열을
:target-path
, 그러나 어디에나 배치할 수 있음defproject
모든 설정 파일의 문자열은 정상적으로 작동합니다.기본적으로 '%s' 를 사용하는 것은 수동으로 설정된 속기인데, 단독으로 속기를 지원하는 것은 이상하다.
:target-path
네, 제가 #1721에 대한 설명은'%s속기를 사용하면 클렌은 그 안에 연결될 수 있는 모든 내용을 삭제해야 한다'고 했지만 @arohner에게 남겨서 그의 의도를 밝힐 것입니다.클라이언트 작업을 호출하기 위해 모든 프로필을 활성화하는 것은 이상합니다.나는 이것이 가장 예상치 못한 원칙을 위반했다고 생각한다.각 작업에 대해 모든 프로파일을 호출할 수도 있습니다!:)
토론 #4
그리고 만약에 내가'직접'작업(접속이 없음)이고 한 프로필토론 #5
을'/dev'로 설정하고 다른 프로필에서'/prod'로 설정한다면 어느 프로필이 활성 상태든지 간에 이 두 옵션을 동시에 불어야 합니까?나는 이런 행위가 대다수 사람들을 놀라게 할 것이라고 생각한다.:target-path
@jcrossley3 네, 공평하게 말하면 모든 내용을 삭제하는 것도 최소한의 의외에 어긋납니다."cleanned./target/foo"만 인쇄하면 될 수도 있습니다.AOT 문제를 디버깅하고 "lein do clean, uberjar"을 실행하는 것이 제 용례입니다.나는 내가 깨끗하고 일치하는 환경을 얻었다고 생각했지만, 사실은 그렇지 않았다. (clean과 uberjar는 서로 다른 프로필을 사용하기 때문에) 나는 몇 시간이 걸려서야 비로소 이 점을 깨달았다.
토론 #6
프로젝트 루트 디렉터리에서 삭제하는 것을 방지하는 보호가 되어 있기 때문에 문제가 되지 않습니다.설정 파일을 활성화하면 부작용이 없을 것입니다.기술적으로 중간부품은 무엇이든 할 수 있지만, 설정 파일에서 안전하게 값을 읽을 수 있도록 활성화할 수 없다면, 중간부품의 심각한 결함이라고 생각할 것이다.
목표 경로의 모든 내용은
토론 #7
에 의해 자동으로 생성되어야 하기 때문에 그것을 불면 항상 안전해야 한다.이를 제거하지 못하면 후속적으로 문제가 발생할 수 있기 때문에, 오래된 파일을 생성된 작업에 들여보낼 위험을 무릅쓰는 것보다, 너무 많은 부분을 조심하고 정리하는 데 실수를 하는 것이 좋다고 생각합니다.:prep-tasks
나에게 있어서 가장 중요한 문제는 안전이 아니다.공연이야.이 패치는 @arohner의 용례를 해결했고, 모든 프로필을 활성화하지 않았습니다.그래서 내 구축은 20초가 아니라 3초가 필요해.나는 사용자가 예상하지 못할 것이라고 생각하기 때문에 모든 프로필을 활성화하는 것은 불필요한 위험이라고 생각한다.
그리고 defproject
토론 #8
의%s가 여러 프로필의 현식 설정:target-path
의 줄임말이라고 믿는지 모르겠습니다. 왜냐하면 모든 프로필의 값에%s가 포함되어 있기 때문입니다.이게 무슨 소용이 있는지 아직 잘 모르겠어요.:target-path
세 개의 서로 다른 무대 환경을 위한 응용 프로그램을 구축하는'구축 상자'를 고려한다. 각 환경은 자신의 디렉터리에 있다.환경마다 프로필을 만들고 프로필마다 합리적으로 설정토론 #9
할 수 있습니다.나는 해냈기 때문에 구축할 때 반드시 그 중 하나를 활성화시켜야 한다. 예를 들어:target-path
.만약 다른 무대 감독의 작품이 그 후에 사라진다면 나는 매우 불쾌할 것이다.너는 이런 인위적인 과정의 장점을 의심할 수 있지만, 이것은 결코 상상할 수 없는 것이 아니다.주요한 점은 리니언이 저에게 개인 자료 관리
lein with-profile +stage1 do clean, uberjar
를 통해 능력을 제공하는 것을 좋아합니다.만약 내가 이렇게 하기로 선택한다면, 나는 그것들의 활성화에 대해 책임을 지고 싶다.레닌근을 구별하지 않고 활성화시키는 것은 내가 보기에 신중함에서 비롯된 것이 아니다.:target-path
내가 이렇게 한 것은 마스터에서 현재의 실현이 선택 퇴출 메커니즘을 제공하지 않았기 때문이다.따라서 모두 지우기 동작은 토론 #10
대상 경로의 한 피쳐로 간주되어야 합니다.감사합니다 @jcrossley 3.
%s
명확한'모두 지우기'옵션이 유용합니까?토론 #11
@jebberjeb는 가능하지만토론 #12
를 사용하면 라이닝겐의 명확한 지원이 필요하지 않습니다.Reference
이 문제에 관하여(#1721에 대한 보다 효과적인 대안), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/technomancy/leiningen/issues/1776텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)