2011-01-04 6 views
3

내 프로젝트를 잡아 통해에서 아키 타입을 생성하기 위해 노력하고있어 :프로젝트의 Maven 아키 타입 - 패키지 이름을 보존하는 방법?

archetype:create-from-project 

것은 내 프로젝트는 SRC/메인/자바 패키지 구조 com.sample.app이 있지만 원형은해야한다 아키타 입을 통해 프로젝트를 생성 할 때 사용자가 원했던 것처럼 만들었지 만 불가능하다고 생각합니다. groupId 및 artifactId를 가져 와서이 입력을 기반으로 archetype-resources/src/main/java을 생성하는 것 같지 않습니다. 여기서 packageName

mvn archetype:create-from-project -DpackageName=com.sample.app 

는하지만이 작동하지 않고 여전히 archetype-resources/src/main/java/org/sample/app

답변

4

create-from-project 목표는 일반적으로 자동으로 기본 패키지 이름을 감지 .. : 나는 생각이 인수가 왜

어쨌든, 그건 그것을 바꿔서 \templateproject\target\generated-sources\archetype\src\main\resources\archetype-resources\src\test\java\Foo.java 패키지 선언이 ${package}

인 것으로 끝날 것입니다. archetype 플러그인을 사용해보십시오. 거의 비어있는 hello-world 프로젝트로 프로젝트에서 생성하면 생성 된 아키타 입을 통해 패키지가 제거 된 것을 볼 수 있습니다. 이렇게하면 archetype:generate을 사용하는 사용자는 생성시 자신의 패키지 이름을 지정할 수 있습니다.

+1

제가 사용했던 archetype-plugin의 첫 번째 버전에서 무슨 일이 일어 났는가, 패키지 구조를 추출한 것입니다. 사용자로 입력하고 groupId 및 artifactId를 입력하면 기본 패키지 구조가 생성됩니다. ..하지만 아무 일도 없었어요 ... 그때 가장 신선한 플러그인을 사용했고 프로젝트에서 아키타 입을 만들 때 기본 패키지 구조를 제거하지도 않았습니다 ... 개발 중입니다. 이것은 모조의 소스 코드입니다 : private String packageName; // 패키지를 해결하는 더 좋은 방법을 찾는다 !!! 구성자 – lisak

+0

오 사용을 시행하십시오. 따라서 Maven 플러그인 버전에 따라 다릅니다. 어느 쪽을 사용하고 있습니까? – mhaller

+0

먼저 버전을 지정하지 않으면 2.0-alpha-6-SNAPSHOT ...을 제공합니다. 2.0-alpha-4로 작업하게 만들었지 만 슬픈 요점은 나는 이유가 무엇인지 몰랐다 :-) 그러나 많은 감사 mhaller, 당신은 나에게 올바른 방향을 가리켰다. – lisak

관련 문제