2017-02-22 153 views
0

我想創建一個Maven項目的jar文件。我瞭解Maven存儲庫和pom.xml文件配置。但是我的查詢與此有點不同。如何使用構建路徑使用的依賴項創建Maven項目jar?

我創建了一個Maven倉庫。我已經通過下載它們,然後在項目的構建路徑中給出了相應的依賴關係jar文件(因爲我使用Eclipse Neon)。

現在當我run as --> Maven install,它創建一個jar文件。但是那個jar是唯一的項目,而不是我所包含的依賴項。

我已經檢查並得到了一些建議,我需要將它們包含在Maven pom.xml中,但我不知道在我的程序中使用了哪個jar。

所以我想知道如何自動讓Maven項目檢測依賴關係,並在不影響我的情況下將它們寫入pom.xml文件。

請讓我知道這怎麼可能?

+0

爲什麼我得到了negetive -1我的問題? –

+0

您是否找到解決方案? – freedev

+0

@freedev是的,它是可行的,謝謝。 –

回答

1

我已使用maven-dependency-plugin解決了此問題。

該插件將您的jar文件所需的所有依賴關係複製到目錄${project.build.directory}/lib中。

當你需要開始你的jar文件,你必須指定類路徑-cp /path/to/your-jar-file.jar:/path/to/your/lib/*

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.8</version> 
      <executions> 
       <execution> 
        <id>copy-dependencies</id> 
        <phase>package</phase> 
        <goals> 
         <goal>copy-dependencies</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}/lib</outputDirectory> 
         <overWriteReleases>false</overWriteReleases> 
         <overWriteSnapshots>false</overWriteSnapshots> 
         <overWriteIfNewer>true</overWriteIfNewer> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
+0

是否可以刪除所有不必要的註釋並轉到聊天室以解釋發生了什麼問題?我已經使用過很多次了。另一方面,我也有你的問題的另一個答案。 – freedev

+0

讓我們[在聊天中繼續討論](http://chat.stackoverflow.com/rooms/136513/discussion-between-jaffer-wilson-and-freedev)。 –

0

另一種解決方案可以直接使用Maven來啓動應用程序,這樣的maven透明添加配置的依賴關係。 您在執行Maven package目標之前只需注意。

# create your jar file with maven 
mvn clean package 

 # execute your class where is main 
mvn exec:java -Dexec.mainClass="your.package.App" -Dexec.args="your app params" 

,你甚至可以把這個包線成shell腳本run.sh

#!/bin/bash 

PARAMS="$*" 

if [ "A$PARAMS" == "A" ] 
then 
    PARAMS="--help" 
fi 

mvn exec:java -Dexec.mainClass="your.package.App" -Dexec.args="$PARAMS" 
相關問題