2011-07-14 45 views
0

我是新来的maven,我试图做maven in 5 mins 我一直想弄清楚为什么mvn软件包产生一个空罐子。我完全按照说明进行操作,但不起作用。Maven构建生产空罐子

我做了结构的项目:生成的目标。这在/ bin中创建了my-app项目结构。然后当我试图运行mvn包,它说

[信息]不能执行mojo:资源。它需要一个包含现有po m.xml的项目,但构建不使用它。

我尝试了几个建议,并最终尝试将pom.xml文件直接放在/ bin中的my-app项目的一级以上。

现在mvn包工作。

的靶在同一目录为我的应用程序创建的。但是jar是空的......没有任何类文件并试图执行它抛出classnotfoundexception。

除了被MVN应该只/箱内工作。至少这是与我的情况。但我看到几个插图,他们的mnv命令是从随机目录执行的,如here

另外如何在maven上创建多模块项目?

有什么建议吗?

+0

1.您有一些源文件(java类?2.您的源文件夹是否标记为源文件夹?3.您可以发布您的pom文件吗?4.您是否使用IDE或在控制台上使用Maven? – timaschew

回答

2

我认为你试图在bin目录的Maven的运行Maven。你应该切换到my-app生成的目录并在那里运行它。 Maven相对于pom.xml需要非常具体的项目结构。当你复制pom.xml时,你的java文件和资源留在我的应用程序中,所以Maven没有找到任何东西并且生成了空的jar。

+0

非常感谢...工作! – bohav

0
  1. 在安装完Maven之后,您应该将它添加到您的操作系统的PATH中。这是一个操作系统练习,与maven无关,但如果您让我们知道您正在使用的是什么,我们一定会帮助您。
  2. 做完#1后,你将能够从任何地方运行maven。这就是将它添加到PATH中的原因。但是,只有在从包含名为pom.xml的文件的目录运行构建时,才能运行构建(尽管有命令行参数可让您更改此构件)。
  3. 当您从原型生成项目(使用mvn archetype:generate)时,它会为您创建一个项目目录,并将pom.xml以及一些文件夹和文件放入其中。阅读#2后,您应该意识到这意味着在mvn archetype:generate之后立即,您需要cd <project dir>然后您已准备好构建您的maven项目。
  4. 当你在你的项目目录中(记住,这是pom.xml的位置),mvn package将构建一个JAR(或WAR,EAR,bundle,不管),并且mvn clean将删除所有构建工件,只留下源代码。
  5. 直到您掌握了基本知识之后,才会担心多模块项目。不,直到你有更多的基础知识。请不要担心。

如果有什么不清楚的地方,请问。

+0

非常感谢Ryan,我全都设置好了,可以配置多模块prj。 – bohav

0

行家期待源文件存在于一定的位置。如果您的设置混乱了,我认为它是,那么您将需要明确提供一个使用元素的位置的引用。

然而,即使一切正确,它也曾经发生过。在Mac上工作,但在Linux上生成空罐子。添加元素明确修复它。