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

How do we deploy the binary dependencies?

假设我们有一个简单的 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并设置classpath

在这种情况下,您将在目标机器上的某处创建一个“libs”文件夹,并将所有相关的 jar 文件复制到该文件夹​​中。

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

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

可以通过用 : 分隔它们来指定多个类路径条目,例如:

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

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

mvn dependency:list