【问题标题】:How do we deploy the binary dependencies?我们如何部署二进制依赖项?
【发布时间】:2016-03-07 04:43:49
【问题描述】:

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

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

谢谢 吉荣

【问题讨论】:

    标签: java maven binary pom.xml nexus


    【解决方案1】:

    您可以将依赖项与您的应用程序打包在一起(即创建一个 uber-jar、WAR 或 EAR 文件),或者您可以将依赖项 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
    

    【讨论】:

    • 使用第二种方法,我们如何知道在使用 UrbanCode、Chef、Puppet 等工具进行自动化部署期间要安装哪些依赖 jar?
    • 这是最难的部分,也是为什么您应该将应用程序打包为 Uber-Jar 的原因。您可以使用依赖插件查看maven的依赖关系: mvn dependency:list
    猜你喜欢
    • 1970-01-01
    • 2012-01-24
    • 2012-04-11
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    相关资源
    最近更新 更多