2012-06-05 518 views
0

我正在學習maven並試圖理解事物的順序。據我所知,mvn clean install建立與默認罐子庫,其中install產生一個.zip,我將在稍後需要。mvn乾淨安裝,mvn安裝:安裝文件順序?

我想用我自己定製的罐子,我打電話mvn install:install-file,但是當我在install之前運行這個時,我得到一些cannot find symbol錯誤。我假設我的自定義罐子(不包含這些類)覆蓋了一些默認罐子?我無法在文件系統的任何位置找到這些類,因此我假設它們已經打包在默認的一個jar中。我怎樣才能解決這個問題?

另外,我應該做些什麼?我想要的只是最終的.zip,包括自定義的罐子?

回答

0
  1. mvn install - 構建和打包的源代碼和副本(安裝)神器到你的本地庫是$USER_HOME/.m2/repository

  2. 很難說發生了什麼事沒有不看的命令,鍵入,並收到錯誤跟蹤。也就是說,install-file是將工件複製到適當層次的本地回購。沒什麼比這更重要的了。正確的語法是:

    mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \ 
        -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging> 
    
  3. 通常情況下,你只需要爲所有的定製依賴運行install:install-file一次,你執行mvn install之前。

  4. 如果您的自定義JAR具有相同的座標 - artifactid,groupid和版本作爲您的pom.xml中的某些依賴項,並且您的自定義JAR沒有您的源代碼使用的類別 - 那麼,您會得到錯誤。

參考:http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

+0

我在調用install-file時引用了.pom和.jar。我爲2個不同的自定義罐子做這個。問題是,當我最後嘗試'mvn install'時,它找不到類的錯誤(在文件系統上不存在,但它是原始.pom中的依賴項)。當我清除存儲庫時,'mvn clean install'工作正常,只是在我調用install-file時,它會失敗。在安裝文件之前清理乾淨,我可能在我安裝的'新'pom文件中的某個位置丟失了一個依賴項? – user12740

0

關於到maven-install-plugin website他們提到如下所示: -

安裝:安裝文件:主要是用來安裝外部創建的神器與其POM一起放入本地存儲庫。在這種情況下,項目信息可以從可選的指定pomFile中獲取,但也可以使用命令行參數給出。

這意味着應該在使用此命令之前創建工件。如果您想將新編譯的代碼部署到本地存儲庫,請使用mvn clean install

請查看​​瞭解有關序列和生命週期的更多信息。我希望這可能會有所幫助。

Regards,

Charlee Ch。