2014-02-14 3 views
0

저는 산업계에 새롭기 때문에 질문의 어리 석음에 대해 미리 사과드립니다. 팀에서는 Intellij IDEA 13을 IDE로 사용하고 Maven 3를 프로젝트에 사용합니다. 우리는 몇 가지 온라인 서비스와 포털을 제공하고 있습니다. 프로젝트는 다른 오래된 프로젝트와 공유되는 몇 가지 의존성을 가지고 있습니다. 일부는 JAR 아카이브이고, 일부는 WAR이며 일부는 WAR입니다 ...스냅 샷 종속성을 편집하는 방법

내 질문 : 로컬에서 이러한 종속성을 편집하는 방법 (예 : resources.properties 편집은 내가 염두에 두었던 경우였습니다.) 과외 선생님은 종속성을 스냅 샷으로 전환하고이를 사용하여 작업하도록 제안했습니다. 내가 할 수 있었던 일은 로컬 저장소에 적절한 폴더의 복사본을 만들고 이름이나 파일에 종속성 버전이 있던 곳을 변경 한 다음 내 pom.xml 파일을 수정하는 것입니다.

이제는 JAR/WAR를 열고 일부 파일을 편집하면 완벽하게 작동하지만 내 IDE에서이 작업을 수행 할 수 있기를 원합니다. 잘못된 길. 어떻게해야 의존성을 풀 수 있어야합니까? 내 접근 방식이 틀렸어?

피씨 : 사무실에있는 사람에게 물어볼 것이지만 이상하게도 오늘날 도울 수있는 사람은 아무도 없습니다!

+1

Maven에 대한 좋은 책을 껴안을 필요가있는 것처럼 보입니다. Maven이 무엇인지, 어떻게 적용하는지 이해하지 않아서 전체적인 질문이 생기기 때문입니다. 당신이 제공 한 충고는 나에게 소리가 나네요. 당신이 그런 종류의 의존성 중 최신의 개발 중 버전을 사용하기 위해서, PNS의 일부 종속성 버전을 -SNAPSHOT 버전으로 변경해야만 했겠지만, 그것은 또한 대체로 당신의 환경에 접근 할 필요가없는 추측입니다. 진정한 진실이 무엇인지 알기. – Gimby

+0

그것이 사실이라면 지금 당장은 실현 가능하지 않습니다. 저는 스프링과 메이븐 (Maven)에 "던져지기"때문에 일을 마치고 너무 많은 책을 읽지 않아도되기 때문에 시간이 한정되어 있습니다 자원 hehe. 이 조언은 최신 버전 (필자는 현재 가지고있는 버전)을 가지고있는 것보다 종속성을 수정할 수 있다는 목표로 삼았습니다. 그러나 당신이 지적 하듯이 여전히 나는 메이븐의 "지식"에 많은 격차가 있기 때문에 자신을 완전히 확신 할 수는 없습니다! –

답변

0

동료 중 누구도 도움을받지 못했다면 숨겨진 것이있을 수 있습니다.

그러나 사용해 보겠습니다.

여러분의 resources.properties은 자신의 프로젝트에 속한 것으로 추측됩니다. Maven에서 처리 한 프로젝트이며 주요 프로젝트 중 하나에서 종속성으로 표현됩니다.

나는 당신의 웹 어플리케이션 일부를 참조하는 것으로 추측하고있다, 따라서) ...

을 나는 또한 당신의 주요 프로젝트 난리 (웹 어플리케이션 주로, 서비스, 포털)이 있음을 추측하고 그리고 항아리 등 라이브러리 구성이다 라이브러리를 Maven 의존성으로 특정 버전으로 업데이트합니다.

IntelliJ (및 다른 IDE)는 비전이 의미가있는 한 Maven을 통해 서로 관련된 JAR 및 WAR의 수정을 쉽게 처리 할 수 ​​있습니다.


참고 : 버전 번호의 끝에서 -SNAPSHOT를 갖는 것은 패키지를 캐시하지 받는다는을 말한다. 반대의 경우 최종 버전 번호는 released으로 간주되며 캐시에서만 가져옵니다. SNAPSHOT을 사용하면 불법적 인 시간을 게시 할 수 있으며 최신 버전을 사용할 수 있으므로이 작업이 중요합니다.

참고 : mvn clean install을 실행하면 로컬 Maven 저장소 (일반적으로 ~/.m2에 있음)에 패키지를 게시하며 사용자에게만 제공됩니다.


일반적인 좋은 연습

는 스냅 샷으로 (이 상황에 따라, 너무 욕심 내 지마) 당신의 DVCS의 모든 개발 지점에서, 모든 소유, 자주 수정 프로젝트는 것입니다. 그리고 Maven은 특정 버전의 플러그인을 가지고 있습니다.이 정확한 순간에 모든 버전이 최종 버전으로 변경됩니다 (최소 버전 또는 주요 버전이 필요한지 전혀 알 수 없습니다). 코드에는 예상되는 다음 릴리스의 SNAPSHOT 번호가 항상 있습니다.

마지막으로, 나는 귀하의 경우, 당신이 선택하는 경우, 스냅 샷에 대한 pom.xml 당신의 라이브러리의 하나를 변경하면 해당하는 루트 프로젝트pom.xml을 변경해야한다고 생각합니다.

이 종속성 버전이 동일하면 라이브러리를 IntelliJ 내의 module으로 추가하면 IDE에서 Maven dep와 Java 모듈이 동일한 엔티티임을 나타 내기 위해 수학을 수행합니다.

그게 도움이 될지조차 모르겠지만 (분명히 확실하지는 않습니다), 필요한 지식에 대해 더 많은 질문을하기를 바랍니다. 당신의 동료가 당신을 더 도울 수있을 것입니다.

+0

그들은 도움을 줄 수 없다는 것이 아닙니다. 오늘 오후 내 팀의 개발자가 여기에 없으므로 현재 요청할 사람이 없습니다. 저는 방금 설명했던 부분을 주로 알아냅니다. 잘못 읽지 않는다면 실제로 그 부분이 있다고 생각합니다. 내가 알아낼 수없는 것은 파일을 수정하는 것입니다 (라이브러리에서 수정하려고하는 앞서 말한 resources.properties와 같음). 모듈을 라이브러리로 추가하는 것이 내 문제를 해결할 수있는 것처럼 들립니다. 주말에 조사를하고 Maven에서 좋은 책과 종합 책을 찾아 보도록하겠습니다! –

+0

그래서 이것이 다소 바뀌 었습니다. 내가 놓친 부분은 SVN 프로젝트를 체크 아웃 할 수있을 것이라고 생각했지만 사실은 특정 프로젝트에 액세스 할 수 없었습니다. 그런 다음 모듈로 추가 한 다음 해당 로컬 스냅 샷 버전을 종속성으로 사용해야했습니다. 답변 해 주셔서 감사합니다. –