Java 创建jar文件时如何包含库/依赖项?
我创建了一个Confluence插件(一个Java应用程序),上面有Maven,并在pom.xml中包含一些依赖项,如下所示:(它需要使用Google客户端库)Java 创建jar文件时如何包含库/依赖项?,java,maven,jar,confluence,atlassian-plugin-sdk,Java,Maven,Jar,Confluence,Atlassian Plugin Sdk,我创建了一个Confluence插件(一个Java应用程序),上面有Maven,并在pom.xml中包含一些依赖项,如下所示:(它需要使用Google客户端库) com.google.api 但是,在执行“atlas debug”以调用Confluence实例或“atlas package”命令后,最终导出的jar文件通常不包含依赖项/库(我根据失败的jar文件大小发现,它比成功导出的jar文件小得多) 如何在每次执行“atlas debug”或“atlas package”命令时将库文件真
com.google.api
但是,在执行“atlas debug”以调用Confluence实例或“atlas package”命令后,最终导出的jar文件通常不包含依赖项/库(我根据失败的jar文件大小发现,它比成功导出的jar文件小得多)
如何在每次执行“atlas debug”或“atlas package”命令时将库文件真正包含到导出的jar文件中?您可以使用将所有依赖项打包到jar中的maven assembly插件。您可以在pom.xml
的build部分的plugins部分中配置它:
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.2</version>
<executions>
<execution>
<id>assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
</archive>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
...
org.apache.maven.plugins
maven汇编插件
2.2.2
装配
包裹
单一的
带有依赖项的jar
...
...
请记住,使用提供的配置的依赖项不会包含在jar中。@Ravi ant!=maven@Ravi蚂蚁!=也许我遗漏了什么,但你为什么要下载任何东西呢?如果在您的计算机和eclipse中正确配置了maven,它将为您完成所有下载和导出到jar的工作。也许我的maven或eclipse有问题?如果我没有将库添加到libs文件夹中,到目前为止将不会成功导出库。locationsrc/main/resources
用于资源,但绝不会用于jar文件,也不应该手动处理。让Maven做这项工作…请出示您的pom文件。。
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.2</version>
<executions>
<execution>
<id>assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
</archive>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>