2016-11-05 79 views
0

我試圖編譯一個項目,它有Maven依賴項和正常的依賴項(你將添加到你的buildpath/lib的.jar項目)。但是,我只能選擇一個(不是,我編譯與Maven,或者我跟文物編譯,不會使項目工作Java:Maven和圖書館編譯

我用

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>me.expdev.testproject.Main</mainClass> 
        </manifest> 
       </archive> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

mvn clean compile assembly:single 

編譯,但我也有5罐(這不能作爲Maven的),我需要包括在包裝罐子輸出!當我在IDE中運行主營它工作正常。

我用的IntelliJ COMMUN ity版。

回答

0

您可以將第三方jar打包爲Maven工件。

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \ 
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar 

<group-id><artifact-id><version>領域是完全由你來填寫,選擇,似乎適合於您的值。這些值可以讓Maven使用這個神器。有關示例,請參閱項目中已有的其他Maven構件。對於組ID,請選擇一些前綴以明確它不是公開發布的jar,以避免混淆。例如custom.,如custom.some.package,但這真的取決於你。

有關詳細信息,請參閱:Guide to installing 3rd party JARs

也請記住,其他開發誰想要使用的項目將不得不這樣做,並在他們的本地Maven倉庫手動安裝的罐子。另一個選擇是運行你自己的Maven倉庫。看到這篇文章:http://stuartsierra.com/2009/09/08/run-your-own-maven-repository

+0

我的maven項目的組ID?你可以填寫參數作爲例子嗎?我試過'mvn install:install-file -Dfile = customizer.jar -DgroupId = me.expdev -DartifactId = testproject -Dversion = 1.0-SNAPSHOT '但是它說我丟包裝,這是什麼? – ExpDev

+0

我添加了更多信息。對於包裝,請使用'jar'。 – janos

+0

'[錯誤]未能在項目testproject上執行目標:無法解析項目的依賴關係me.expdev:testproject:jar:1.0-SNAPSHOT:以下工件無法解析:me.expdev:customizer:jar:1.0,me .expdev:jmf:jar:1.0,me.expdev:mediaplayer:j ar:1.0,me.expdev:multiplayer:jar:1.0,me.expdev:sound:jar:1.0:找不到me.expdev:customizer:在https://raw.github.com/kristian/system-hook/mvn-repo/中的jar:1.0被緩存在本地倉庫中,直到系統掛鉤mvn-repo更新後纔會重新解析分辨率已經過去或更新被強制 - > [幫助1 ' – ExpDev