我们有一个适用于 AWS Lambda 的 Java 项目,可以根据请求执行不同的评估。 到目前为止,效果很好,但对于某些评估,我们希望选择在本地计算机上手动启动它们。
为此,我们希望有 2 个 Maven 构建目标:
当前的 Maven 构建配置如下所示(我们使用阴影构建可部署的 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>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我如何为指定的主函数添加第二个目标?
我只需将 exec-maven-plugin 添加到您的构建中。比如:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<mainClass>your.package.MainClass</mainClass>
</configuration>
</plugin>
</plugins>
在这种情况下,您可以使用
public static void main(String[] argv)
在代码中运行 mvn exec:java -Dexec.args="some set of args"
。我会有一个通用的“工作”对象/类来完成您最终想要的事情。您的 Lambda 处理程序可以调用此工作程序类,或者您的 main()
也可以。