我是java和maven的全新品牌,所以這可能非常簡單。如何使用maven打包並運行帶有依賴關係的簡單命令行應用程序?
如果我按照maven2的hello world
說明操作:
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
一切正常確定。如果我然後更改pom.xml
以從遠程存儲庫引入依賴項,則此依賴項的文件將存儲在~/.m2/repository/new-dependency/
中。
使用在hello world
指令以運行該應用程序的語法要求我添加到我的類路徑的依賴性的絕對路徑(或者通過設置環境變量或通過命令行開關):
java -cp target/my-app-1.0-SNAPSHOT.jar:/.../.m2/.../new-dependency.jar com.mycompany.app.App
這顯然會很快變得笨拙:)
我懷疑這不是通常的運行java程序的方式,我只需要閱讀更多關於.jar文件,但是當我這樣做時,我會很感激任何提示如何正確地做到這一點。
我沒有使用IDE,順便說一句。 vim從命令行。
謝謝!
Mike。
經過一些修改之後,它才起作用: – mdtsandman 2011-05-17 00:29:01
爲了使這個解決方案能夠工作,我需要將classpathMavenRepositoryLayout = true和classpathPrefix =/home /.../.m2/repository/添加到清單部分,因爲默認行爲就是將清單中jar的名稱(不參考它在文件系統中的位置)。 – mdtsandman 2011-05-17 00:38:45
是的,默認行爲期望依賴位於主jar的同一目錄中。由於您有本地回購的依賴關係,所以您的解決方案可以從系統中的任何位置運行該jar。 – iruediger 2011-05-17 01:38:37