当前位置: 首页 > 面试题库 >

使用Maven,我如何构建具有项目jar和所有相关jar的可分发文件?

逄嘉熙
2023-03-14
问题内容

我有一个项目(类型为“
jar”),(显然)构建了一个jar。但是那个项目有很多依赖。我希望Maven构建一个包含我的jar,所有相关的jar和一些脚本(以启动应用程序等)的“包”或“程序集”。

最好的方法是什么?具体来说,将依赖项加入程序集的最佳方法是什么?


问题答案:

对于单个模块,我将使用类似于以下(src/assembly/bin.xml)的程序集:

<assembly>
  <id>bin</id>
  <formats>
    <format>tar.gz</format>
    <format>tar.bz2</format>
    <format>zip</format>
  </formats>
  <dependencySets>
    <dependencySet>
      <unpack>false</unpack>
      <scope>runtime</scope>
      <outputDirectory>lib</outputDirectory>
    </dependencySet>
  </dependencySets>
  <fileSets>
    <fileSet>
      <directory>src/main/command</directory>
      <outputDirectory>bin</outputDirectory>
      <includes>
        <include>*.sh</include>
        <include>*.bat</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>

要使用此程序集,请将以下配置添加到pom.xml中:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
      <descriptors>
        <descriptor>src/assembly/bin.xml</descriptor>
      </descriptors>
    </configuration>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>single</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

在此示例中,启动/停止脚本位于src/main/command和捆绑在之中bin,依赖项捆绑在之中lib。对其进行自定义以满足您的需求。



 类似资料:
  • 本文向大家介绍Apache Maven 创建具有项目所有依赖项的.jar文件,包括了Apache Maven 创建具有项目所有依赖项的.jar文件的使用技巧和注意事项,需要的朋友参考一下 示例 要创建包含所有依赖项的JAR,可以使用内置描述符格式jar-with-dependencies。以下示例package使用此内置描述符并声明的主类来配置绑定到该阶段的Assembly Plugin的执行co

  • 问题内容: 我想将我的项目打包在一个可执行的JAR中进行分发。 如何使Maven项目将所有依赖JAR打包到我的输出JAR中? 问题答案: 然后用 编译目标应在Assembly:single:single之前添加,否则不包括您自己项目中的代码。 通常,此目标与自动执行的构建阶段相关。这样可以确保在执行mvn install或执行部署/发布时构建JAR 。

  • 我尝试使用gradle build的以下格式创建一个jar库,以便以后可以将其作为jar包导入该项目中的其他人。但是,生成的jar只有一个清单文件,没有java文件。 这些文件在Eclipse中的一个包中。 感恩节。

  • 我想将我的项目打包在一个单独的非可执行库JAR中进行分发。如何使Maven项目将所有依赖项JAR打包到输出JAR中?Maven assembly插件中有一个选项来创建一个具有依赖项的可执行JAR。有一个接收器来获得目标。但是,我需要构建一个没有类的库jar。我怎么才能造出这样的罐子?

  • 问题内容: 我有一个使用Maven的Java项目。在我的项目中,我有一个名为的文件夹,其中包含无法从Internet /外部存储库加载的所有JAR。 我的问题是如何在包装,构建等过程中指定Maven包括那些JAR? Maven新手,很抱歉,如果这是一个愚蠢的问题。 编辑:我有一个自动工具,它将在我的Git上查找我的文档,以在不同环境中构建和部署我的项目。因此,按照此处的建议将其添加到本地Maven

  • 有人能这么好心解释一下如何在Netbean MavenJava应用程序中使用所有maven依赖项创建单个jar文件吗?在Eclipse中,用户可以导出到Runnable jar文件并选择将所需的库打包到生成的JAR中,因此项目中的所有依赖项都包含在创建的jar文件中。在Netbean中没有这样的选项。我检查了其他答案,但我唯一理解的是我必须将代码添加到Build.xml文件中,该文件甚至不在项目中