无法从现有maven项目创建原型

无法从现有maven项目创建原型,maven,maven-3,maven-archetype,Maven,Maven 3,Maven Archetype,我试图从现有的多模块maven项目中创建一个原型。为此,我将目录更改为根目录(根pom.xml所在的位置),并发出“mvn原型:从项目创建”。生成未完成,我收到以下错误: [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]

我试图从现有的多模块maven项目中创建一个原型。为此,我将目录更改为根目录(根pom.xml所在的位置),并发出“mvn原型:从项目创建”。生成未完成,我收到以下错误:

[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]
使用-e和-X标志再次运行时,我可以看到以下堆栈跟踪:

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原型插件文档,没有找到任何对charsetName属性的引用。所以,我对如何解决这个问题有点迷茫。我在Ubuntu上使用maven 3.0.4和java 1.6.0_25。有什么建议吗


你知道这里出了什么问题吗?

你不久前发布了这个问题,但是这个答案可能会帮助其他人

我在一个项目中遇到了同样的问题。当项目中的文件包含不同编码的字符时,会发生此错误。这个问题的一个解决方案是替换这个字符——如果不是很多,则生成原型,将字符还原为原始字符,最后在原型元数据文件中更改为正确的编码

另一个选项是更改原型生成中的默认编码UTF-8,如下所示:

mvn archetype:create-from-project -Darchetype.properties=../archetype.properties 
有关详细信息,请遵循以下指南:


我在处理同样的错误,然后我发现是什么把原型创建搞砸了。。。 首先,我通过在pom.xml中插入以下属性来选择编码ISO-8859-1:

<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>

ISO-8859-1
${project.build.sourceEncoding}
${project.build.sourceEncoding}
之后,我在pom.xml的build部分插入了带有以下所有配置的原型插件:

<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>

org.apache.maven.plugins
maven原型插件
2.2
${project.build.sourceEncoding}
${project.build.sourceEncoding}
原型wsjpa
br.com.example
1
java、xml
通过这样做,您应该在自己的pom.xml中提供所有原型生成配置,而不是编写属性文件(archetype.properties)来声明此配置

最后,我使用
mvn clean install
运行了maven,然后
mvn原型:create from project-e-X

即使如此,您仍然可能会注意到一些编码错误,如本文中报告的错误,即使您已经如上图所示更新了pom.xml。。。如果在为项目设置了正确的编码后仍然出现相同的错误,请尝试找出哪个项目文件仍然包含无效字符。 要找到麻烦制造者文件,您应该观察Maven在控制台上显示的调试行,如下图所示:
“[debug]InputFileName:src\main\resources\META-INF\persistence.xml”
,并检查哪些项目文件已写入文件夹
${basedir}\目标\generated sources\archetype\src\main\resources\archetype resources

在创建原型过程中出现编码错误时,上述文件夹与原始项目内容不匹配,这是因为Maven无法复制某些资源,因为指定的属性字符集中不包含无效或不兼容的字符。

是否在项目中为源等设置了编码?是。我已将编码设置为ISO-8859-1。我尝试了两种方法:maven编译器插件配置中的标记和属性。他们没有一个为我工作。。。