2012-05-17 5 views
1

기존의 다중 모듈 메이븐 프로젝트에서 아키타 입을 만들려고합니다. 이를 위해 루트 디렉토리 (루트 pom.xml이있는 디렉토리)로 디렉토리를 변경하고 "mvn archetype : create-from-project"를 실행합니다. 빌드가 완료되지 않습니다 나는 다음과 같은 오류 얻을 :기존의 maven 프로젝트에서 아키타 입을 만들 수 없습니다.

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:create-from-project (default-cli) on project siaci-d: charsetName 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 
Caused by: org.apache.maven.plugin.MojoFailureException: charsetName 
at org.apache.maven.archetype.mojos.CreateArchetypeFromProjectMojo.execute(CreateArchetypeFromProjectMojo.java:285) 
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 
... 19 more 

나는 maven-을 확인 : 나는 다음과 같은 스택 추적을 볼 수 -e 및 -X 플래그를 다시 실행

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:create-from-project (default-cli) on project siaci-d: charsetName -> [Help 1] 

을 archetype-plugin 문서를 참조하고 charsetName 특성에 대한 참조를 찾지 못했습니다. 그래서이 문제를 해결하는 방법에 대해 약간 분실했습니다. 우분투 상자에서 Java 1.6.0_25와 함께 maven 3.0.4를 사용하고 있습니다. 어떤 충고?

여기에 어떤 문제가 발생했는지 알 수 있습니까?

+0

프로젝트에서 소스 등의 인코딩을 설정 했습니까? – khmarbaise

+0

예. 인코딩을 ISO-8859-1로 설정했습니다. 두 가지 방법, 즉 maven 컴파일러 플러그인 구성의 태그와 속성을 ​​시도했습니다. 그들 중 누구도 나를 위해 일하지 않았다 ... –

답변

4

이 질문은 얼마 전 게시 한 적이 있지만이 답변은 다른 사람들에게 도움이 될 수 있습니다.

프로젝트에서 같은 문제가 발생했습니다. 이 오류는 프로젝트에 다른 encondig의 문자가 포함 된 파일이있을 때 발생합니다. 이 문제에 대한 해결책은이 문자를 대체하는 것입니다.   - 많은 수가 아닌 경우 원형을 생성하고 문자를 원본으로 되돌리고 마침내 원형 메타 데이터 파일에서 오른쪽 enconding으로 변경하십시오. 자세한 내용은

mvn archetype:create-from-project -Darchetype.properties=../archetype.properties 

이 안내에 따라 :

1

나는 동일한 오류 그때 원형 제작을 어지럽히 있었던 것을 알았다 ... 먼저, I는 pom.xml 파일에 다음 등록을 삽입하여 인코딩 ISO-8859을 선택 : 이후

<properties> 
    <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>${project.build.sourceEncoding}</project.reporting.outputEncoding> 
    <project.resources.sourceEncoding>${project.build.sourceEncoding}</project.resources.sourceEncoding> 
</properties> 

를, I는 삽입 pom.xml 파일의 빌드 섹션에서 아래의 모든 구성으로 원형 - 플러그인 :

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-archetype-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <defaultEncoding>${project.build.sourceEncoding}</defaultEncoding> 
     <encoding>${project.build.sourceEncoding}</encoding> 
     <archetypeArtifactId>archetype-wsjpa</archetypeArtifactId> 
     <archetypeGroupId>br.com.example</archetypeGroupId> 
     <archetypeVersion>1.0</archetypeVersion> 
     <archetypeFilteredExtentions>java,xml</archetypeFilteredExtentions> 
    </configuration> 
</plugin> 

이렇게하면 (속성 파일을 작성하는 archetype.properties를 자신의 pom.xml의 모든 원형 생성 구성을 대신 제공해야)를 사용하여이 구성을 선언하십시오.

그리고 마지막으로, 나는 위와 같이 당신이 당신의 pom.xml 파일을 업데이트 한 경우에도, 그럼에도 불구하고, 여전히이 게시물에보고 된 것과 같은 일부 인코딩 오류를 알 수 있습니다 다음

mvn archetype:create-from-project -e -Xmvn clean install로 받는다는 실행 .. 프로젝트에 올바른 인코딩을 설정 한 후에도 여전히 동일한 오류가 발생하는 경우 잘못된 문자가 포함 된 프로젝트 파일을 찾으십시오. troublemaker 파일을 찾으려면 Maven이 다음과 같이 콘솔에 표시되는 디버그 라인을 관찰해야합니다 : "[DEBUG] InputFileName:src\main\resources\META-INF\persistence.xml" 그리고 어떤 프로젝트 파일이 ${basedir}\target\generated-sources\archetype\src\main\resources\archetype-resources 폴더에 쓰여져 있는지 확인하십시오. 아키 타입 작성 중에 인코딩 오류가 발생하면 앞의 폴더가 원래 프로젝트 내용과 일치하지 않으며 속성 지정 문자 세트에 포함되지 않은 올바르지 않거나 호환되지 않는 문자로 인해 Maven에서 일부 자원을 복사 할 수 없기 때문에 발생합니다.