如何使用构建路径使用的依赖项创建Maven项目jar?

问题描述:

我想创建一个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是的,它是可行的,谢谢。 –

我已使用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)。 –

另一种解决方案可以直接使用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"