java - 我们如何部署二进制依赖项?

标签 java maven binary pom.xml nexus

假设我们有一个简单的 Java 项目,编译成 simple.jar,其 POM 依赖于 log4j.jar。当我打开simple-1.0.jar时,里面没有log4j.jar。然后我们将这个 simple-1.0.jar 上传到 Nexus 上。

现在将这个simple-1.0.jar部署到目标服务器时,我们如何部署log4j.jar?

谢谢 吉荣

最佳答案

您可以将依赖项与应用程序一起打包(即创建 uber-jar、WAR 或 EAR 文件),也可以将依赖项 jar 部署到服务器上的某个位置,然后在运行时将该位置设置为类路径 jar 。

将应用程序打包为 Uber-JAR

使用 Maven 创建 uber-jar 的一种方法是使用 maven-shade-plugin

部署依赖jar并设置类路径

在这种情况下,您将在目标计算机上的某个位置创建一个“libs”文件夹,并将所有依赖的 jar 复制到此文件夹中。

然后,当您启动应用程序时,您将像这样设置类路径:

java -classpath /{libs directory} -jar simple-1.0.jar

可以通过用 : 分隔来指定多个类路径条目,如下所示:

java -classpath /{directory1}:/{directory2} -jar simple-1.0.jar

您可以让 Maven 使用依赖项插件列出已解析的依赖项:

mvn dependency:list

关于java - 我们如何部署二进制依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34051259/

相关文章:

java - 从对话框启动框架

java - Appengine 上传限制为 10000 个文件

assembly - 修改二进制文件中的游戏设置

java - 为什么这个程序会根据用户输入的位数重复答案?

java - 添加二进制数

java - 使用 x 和 y 坐标制作 2d 网格的 1d 数组(x 和 y 不是指 2d 网格的行和列)

java - GSON 反序列化 : nested JSon file error

java - "Maven is on version"提供错误 "Error: JAVA_HOME is not defined correctly"

使用复制资源目标 : 'resources' , 'outputDirectory' 丢失或无效的 maven-resources-plugin 错误

java - Spring Security 配置无法找到 NameSpaceHandler