mvn archetype을 실행하는 방법이 있습니까? artifactId에서 디렉토리를 생성하는 대신 현재 디렉토리를 생성하고 대상을 지정 하시겠습니까? 플러그인은 basedir 매개 변수를 사용하지만 "-Dbasedir ="을 전달합니다. 트릭을하지 않습니다.Maven Archetype 사용 동일한 디렉토리에서 생성
추가 컨텍스트를 위해 2 개의 저장소 저장소를 설정했습니다. 첫번째는 커스텀 웹 서비스를 생성하기위한 Maven 아키 타입의 소스를 포함하고, 두 번째는 아키 타입에서 생성 된 샘플 서비스이다. 나는 기본적으로 "mvn clean install"을 실행하여 내 아키타 입을 만드는 Jenkins 작업을 가지고 있습니다. 우리 CI 워크 플로우의 일부로 두 번째 Jenkins 작업을 설정하려고합니다. "mvn archetype : generate"를 사용하여 테스트 서비스를 생성하고, mvn 클린 설치로 서비스를 빌드하고, 서비스를 회전시키고, 일부 통합 테스트를 실행 한 다음 테스트가 통과되면 테스트 서비스를위한 소스가 두 번째 저장소로 이동합니다. Jenkins의 두 작업 모두 Maven 2/3 빌드 job type을 사용하며 작업 구성의 SCM 섹션에 Git repo 정보를 지정했기 때문에 작업은 "git clone"을 수행하기 시작합니다. 두 번째 작업을 위해
, 내 현재의 흐름은 다음과 같습니다// Clean out the existing source and commit locally.
git rm -r .
git commit -m "Cleaning out previous version." .
// Generate the new source from the archetype.
mvn archetype:generate ...
// Big hack that I'd like to remove.
mv <artifactId>/* .
rm -rf <artifactId>
// Add the new generated source and commit locally.
git add -A .
git commit -m "Committing new version." .
// Build and test.
mvn integration-test
// Assuming that passed, commit the changes.
git push origin master
해킹 내가 대신 중첩 된 디렉토리를 만드는 내 현재 디렉토리를 사용하는 아키 타입 플러그인을 이야기하는 방법을 잘 모르겠어요 때문이 artifactId의 이름으로 모든 것을 로컬 저장소 루트 디렉토리로 옮기고 생성 된 디렉토리를 삭제해야합니다. 세상 끝은 아니지만 추한 느낌. 초기 질문에 대한 답변 외에도 전반적인 목표를 달성하는 방법에 대한 제안을 할 수 있습니다. :) 미리 감사드립니다!
감사합니다! 나는 # 1을 테스트했지만 작동하지 않는 것 (또는 내가 잘못한 것을하고있다)이다. # 2는 작동하지만 chroot jailed 빌드 환경에서 실행 중이므로 한 단계 올라갈 수 없기 때문에 필자의 경우 옵션이 아닙니다. 나는 완전히 # 3을 괴롭힌다는 확신이 없지만, 아키타 입방체를 구축하고 별도의 젠킨스 (Jenkins) 작업에서 실행되는 아키타 입을 가진 서비스를 생성 한 이후로 나에게 옵션이라고 생각하지 않는다. – Tyson
"서비스 생성 중"프로젝트를 다중 모듈 빌드로 변환하십시오. –