【问题标题】:How do you include a local jar when using mvn assembly:single to build a jar-with-dependencies?使用 mvn assembly:single 构建带有依赖关系的 jar 时,如何包含本地 jar?
【发布时间】:2012-04-26 09:47:16
【问题描述】:

具体来说,我正在尝试构建一个具有依赖项的 Datomic (http://www.datomic.com) jar,以便我可以在 Jython REPL 中对其进行试验。

Datomic 未在 Maven 上分发,但您可以像这样下载并安装 Datomic 到本地 Maven 存储库中:

mvn install:install-file 
  -DgroupId=com.datomic 
  -DartifactId=datomic 
  -Dfile=datomic.jar 
  -DpomFile=pom.xml

但我需要将它作为单个 jar 及其依赖项,以便我可以将它放在我的类路径中并从 Jython REPL 中使用它。

mvn assembly:single 构建一个带有依赖关系的 jar,但它不包含 Datomic jar,大概是因为它是一个本地文件。

在做mvn assembly:single 时如何包含本地jar?

【问题讨论】:

    标签: java maven jvm jython maven-assembly-plugin


    【解决方案1】:

    我认为使用 Maven Shade 插件会更好: http://maven.apache.org/plugins/maven-shade-plugin/

    这将允许您创建一个 über-jar,其中将包含您自己的类以及依赖项。

    【讨论】:

      【解决方案2】:

      jar是否安装在本地无所谓,只要将jar文件添加到项目的pom.xml文件(依赖部分)即可:

      <dependencies>
        ... ...
        <dependency>
          <groupId>com.datomic</groupId>
          <artifactId>datomic</artifactId>
          <version>1.0</version>
        </dependency>
      </dependencies>
      

      查看 Maven 组装插件文档jar-with-dependency

      使用 jar-with-dependencies 作为您的程序集插件配置的descriptorRef,以创建一个包含项目二进制输出的JAR,以及解压后的依赖项。此内置描述符使用 JAR 归档格式生成带有分类器 jar-with-dependencies 的程序集。

      请注意,jar-with-dependencies 仅提供对 uber-jars 的基本支持。如需更多控制,请使用Maven Shade Plugin

      示例 pom.xml:

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals><goal>single</goal></goals>
          </execution>
        </executions>
      </plugin>
      

      【讨论】:

        猜你喜欢
        • 2012-04-01
        • 2019-04-05
        • 2012-05-13
        • 2023-03-18
        • 1970-01-01
        • 2020-05-08
        • 2014-01-08
        • 1970-01-01
        • 2018-01-20
        相关资源
        最近更新 更多