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/66002163/

相关文章:

java - java中Set元素的同步

javascript - 使用 Vue webpack 模板的环境独立构建

管理 CSS 爆炸和/或重用的 Java 库?

java - 如何将构建的 fat JAR 作为 gradle 任务执行?

grails - Grails和Maven集成

java - 使 Eclipse 使用 src/test/resources 而不是 src/main/resources

java - 将文件中的句子存储到java字符串中

java - 在接口(interface)中使用静态单例 getter 是一种不好的做法吗?

java - Java 中的清除 protected 双向链表

build - 基于条件的包依赖 [debian]