You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置CLASSPATH指向Maven仓库?含Docker打包疑问

命令行运行带依赖的Maven项目

方法1:用Maven Exec插件直接运行

无需手动拼接类路径,Maven会自动加载~/.m2/repository中的依赖,直接执行:

mvn exec:java -Dexec.mainClass="App"

如果主类包含包名(如com.example.App),替换参数为-Dexec.mainClass="com.example.App"即可。

方法2:打包成包含所有依赖的可执行Jar(Fat Jar)

打包后可直接用java -jar运行,无需依赖外部文件。推荐使用maven-assembly-plugin,在pom.xml中添加以下配置:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>3.6.0</version>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
          <manifest>
            <mainClass>App</mainClass> <!-- 替换为你的主类全限定名 -->
          </manifest>
        </archive>
      </configuration>
      <executions>
        <execution>
          <id>make-assembly</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

执行mvn package后,target目录会生成类似my-app-1.0-SNAPSHOT-jar-with-dependencies.jar的文件,运行命令:

java -jar target/my-app-1.0-SNAPSHOT-jar-with-dependencies.jar
打包为Docker镜像

基于Fat Jar的Docker镜像制作(推荐)

步骤如下:

  1. 按上述方法打包好Fat Jar
  2. 在项目根目录创建Dockerfile:
# 使用对应版本的OpenJDK基础镜像
FROM openjdk:17-jdk-slim
# 设置容器内工作目录
WORKDIR /app
# 复制Fat Jar到容器内
COPY target/my-app-1.0-SNAPSHOT-jar-with-dependencies.jar app.jar
# 容器启动时运行程序
CMD ["java", "-jar", "app.jar"]
  1. 构建Docker镜像:
docker build -t my-app:1.0 .
  1. 运行容器:
docker run --rm my-app:1.0

不打Fat Jar的Docker镜像制作(可选)

若不想打包Fat Jar,可在镜像中复制依赖和项目Jar,手动设置类路径:

  1. 先导出Maven依赖到本地目录:
mvn dependency:copy-dependencies -DoutputDirectory=target/dependency
  1. 创建Dockerfile:
FROM openjdk:17-jdk-slim
WORKDIR /app
# 复制依赖目录和项目Jar
COPY target/dependency /app/dependency
COPY target/my-app-1.0-SNAPSHOT.jar app.jar
# 设置类路径并运行主类
CMD ["java", "-cp", "app.jar:dependency/*", "App"]
  1. 构建、运行镜像的命令与上述一致。

内容的提问来源于stack exchange,提问作者YoavKlein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:16:22