2011-07-14 43 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上生成空罐子。添加元素明確修復它。