软件包名称与文件路径不对应
问题描述:
我是新来的maven,并试图运行简单的春天演示。我使用Intellij IDEA作为我的IDE。我接下来的教程提供了here。软件包名称与文件路径不对应
于是我就
mvn archetype:generate -DgroupId=SpringDemo -DartifactId=SpringExamples
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
,然后做
mvn idea:idea
它产生的所有.ipr,.iws等文件。然后,我只是从IDEA打开并选择.ipr文件。它检测到的IDEA项目,并打开了它,但它给了我下面的错误
Package name 'cospring' does not correspond to the file path 'cospring-demo'
App类的
package cospring-demo;
/**
* Hello world!
*
*/
public class App
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
问题是什么?任何工作?
答
这是很好的解释
Maven的组id喜欢破折号( “
-
”),但Java编译器禁止破折号包名。然而,原型插件只是简单地吐出了用户给出的groupId。 ARCHETYPE-216
只需避免使用在从原型产生groupId
-
。
如果域名包含连字符或标识符(§3.8)中不允许的任何其他特殊字符,则将其转换为下划线。 JLS
我想'cospring-demo'不是有效的软件包名称(包括连字符)尝试在你的类'应用程序中使用'cospring' '。 – Katona
你真的不应该使用'mvn idea:idea'。它已过时:http://stackoverflow.com/a/11903127/1350762。 – maba