java - 如何使用 Maven 创建具有依赖项的可执行/可运行 JAR?

标签 java build maven-2 executable-jar build-automation

我想将我的项目打包到一个可执行 JAR 中进行分发。

如何使 Maven 项目将所有依赖 JAR 打包到我的输出 JAR 中?

最佳答案

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>fully.qualified.MainClass</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build>

然后你运行它

mvn clean compile assembly:single

编译目标应在 assembly:single 之前添加,否则不包含您自己项目中的代码。

查看评论中的更多详细信息。

<小时/>

通常,此目标与自动执行的构建阶段相关。这可确保在执行 mvn install 或执行部署/发布时构建 JAR。

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>fully.qualified.MainClass</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
      <executions>
        <execution>
          <id>make-assembly</id> <!-- this is used for inheritance merges -->
          <phase>package</phase> <!-- bind to the packaging phase -->
          <goals>
            <goal>single</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

关于java - 如何使用 Maven 创建具有依赖项的可执行/可运行 JAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60915794/

相关文章:

java - 字符串数组为完整数字。 ["2", "2"] 到 22,而不是 [2, 2]

java - 映射来存储键和多种类型的值

java - Eclipse e4 部件在首次显示之前尚未创建

ios - 是否可以让多个应用程序用完一个 iOS .app 文件?

build - 清理任务不清理指定的输出文件

java - 为什么从 maven2 迁移到 buildr 时我的测试无法运行?

java - GraalVM native 图像构建无法找到 log4j appender 类

build-process - 如何使用 CruiseControl.Net 构建忽略可执行文件的输出?

java - 如何从 java 代码获取 Maven 项目 BaseDir()

eclipse - m2eclipse:Eclipse 在 JRE 中运行,但需要 JDK