我是maven的新手,我正在尝试maven in 5 mins 我一直试图弄清楚为什么mvn包正在生产一个空罐子。我按照说明完全按照说明操作,但它不起作用。
我做了archtype:生成目标。这在/ bin中创建了my-app项目结构。然后,当我试图运行mvn包时,它说
[INFO]无法执行mojo:资源。它需要一个具有现有po的项目 m.xml,但构建没有使用。
我尝试了几个建议,最后尝试将pom.xml文件直接放在/ bin中直接放在my-app项目中。
现在mvn包工作了。
目标是在与my-app相同的目录中创建的。但jar是空的......没有任何类文件,并试图执行它抛出classnotfoundexception。
此外,mvn应该仅在/ bin内工作。至少就是我的情况。但是我看到了几个插图,其中mnv命令是从here
等随机目录执行的如何在maven上创建多模块项目?
有什么建议吗?
答案 0 :(得分:2)
我认为你试图在Maven的bin
目录中运行Maven。您应该切换到生成的my-app
目录并在那里运行它。 Maven需要相对于pom.xml非常具体的项目结构。当您复制pom.xml时,您的java文件和资源都留在my-app中,因此Maven没有找到任何并生成空jar。
答案 1 :(得分:0)
mvn archetype:generate
),它会为您创建一个项目目录,并在其中放置一个pom.xml和一些文件夹和文件。在阅读#2之后,您应该意识到这意味着在mvn archetype:generate
之后,您需要cd <project dir>
。 然后您已准备好构建您的maven项目。mvn package
将构建一个JAR(或WAR,EAR,bundle,等等),mvn clean
将删除所有构建工件,只留下源代码。如果有什么不清楚,请问。
答案 2 :(得分:0)
maven希望源文件出现在某个位置。如果你的设置搞砸了,我认为它是,那么你需要使用element明确地提供它的位置的引用。
然而,即使一切都是正确的,它也曾经发生过一次。在Mac上工作但在Linux上生成了空jar。添加元素明确修复它。