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

如何为AWS Lambda Java项目添加带自定义主函数的Maven构建目标

配置Maven双构建目标方案

你可以通过给maven-shade-plugin添加**第二个执行器(execution)**来实现需求,同时给两个执行器设置不同的ID和输出文件名,避免Jar包冲突。具体配置如下:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.2.2</version>
      <configuration>
        <createDependencyReducedPom>false</createDependencyReducedPom>
      </configuration>
      <executions>
        <!-- 第一个执行器:用于AWS Lambda部署,保留原有逻辑 -->
        <execution>
          <id>lambda-deployment</id>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <!-- 指定Lambda部署包的输出名称,避免和本地包冲突 -->
          <configuration>
            <finalName>${project.build.finalName}-lambda</finalName>
          </configuration>
        </execution>

        <!-- 第二个执行器:用于本地运行,指定自定义main函数 -->
        <execution>
          <id>local-runner</id>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
            <!-- 替换成你的自定义主类全限定名 -->
            <mainClass>com.yourpackage.YourLocalMainClass</mainClass>
            <!-- 生成带-local后缀的Jar,方便识别本地运行包 -->
            <finalName>${project.build.finalName}-local</finalName>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

使用说明:

  • 执行mvn package会同时生成两个Jar包:一个带-lambda后缀(用于Lambda部署),一个带-local后缀(可直接本地运行)。
  • 如果只想单独构建其中一个目标,可以用执行器ID指定:
    • 构建Lambda部署包:mvn shade:shade@lambda-deployment
    • 构建本地运行包:mvn shade:shade@local-runner
  • 本地运行时,直接执行java -jar target/xxx-local.jar即可启动你的自定义main函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 01:07:11