首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Quarkus 2.0 maven构建没有为AWS lambda创建uber-jar

Quarkus 2.0 maven构建没有为AWS lambda创建uber-jar
EN

Stack Overflow用户
提问于 2021-07-26 02:28:03
回答 1查看 316关注 0票数 0

我正在使用Quarkus2.0来构建uber-jar作为AWS。Maven构建脚本如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <properties>
        <quarkus.package.type>uber-jar</quarkus.package.type>
    </properties>

    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-amazon-lambda</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugin>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-maven-plugin</artifactId>
                <version>2.0.3.Final</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

application.properties还包含quarkus.package.type=uber-jar配置。

当我调试Maven构建时,我看到在作出决策的时刻,quarkus-maven-plugin执行代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@BuildStep
    public JarBuildItem buildRunnerJar(CurateOutcomeBuildItem curateOutcomeBuildItem, OutputTargetBuildItem outputTargetBuildItem, TransformedClassesBuildItem transformedClasses, ApplicationArchivesBuildItem applicationArchivesBuildItem, ApplicationInfoBuildItem applicationInfo, PackageConfig packageConfig, ClassLoadingConfig classLoadingConfig, List<GeneratedClassBuildItem> generatedClasses, List<GeneratedResourceBuildItem> generatedResources, List<UberJarRequiredBuildItem> uberJarRequired, List<UberJarMergedResourceBuildItem> uberJarMergedResourceBuildItems, List<UberJarIgnoredResourceBuildItem> uberJarIgnoredResourceBuildItems, List<LegacyJarRequiredBuildItem> legacyJarRequired, QuarkusBuildCloseablesBuildItem closeablesBuildItem, List<AdditionalApplicationArchiveBuildItem> additionalApplicationArchiveBuildItems, MainClassBuildItem mainClassBuildItem, Optional<AppCDSRequestedBuildItem> appCDS) throws Exception {
        if (appCDS.isPresent()) {
            this.handleAppCDSSupportFileGeneration(transformedClasses, generatedClasses, (AppCDSRequestedBuildItem)appCDS.get());
        }

        if (!uberJarRequired.isEmpty() && !legacyJarRequired.isEmpty()) {
            throw new RuntimeException("Extensions with conflicting package types. One extension requires uber-jar another requires legacy format");
        } else if (legacyJarRequired.isEmpty() && (!uberJarRequired.isEmpty() || packageConfig.type.equalsIgnoreCase("uber-jar"))) {
            /* I want it get there, but it doesn't due to "legacyJarRequired" containing an item, ("packageConfig == uber-jar" as expected) */          

            return this.buildUberJar(curateOutcomeBuildItem, outputTargetBuildItem, transformedClasses, applicationArchivesBuildItem, packageConfig, applicationInfo, generatedClasses, generatedResources, uberJarMergedResourceBuildItems, uberJarIgnoredResourceBuildItems, mainClassBuildItem);
        } else {
            /* execution gets there because "legacyJarRequired" contains an item */
 
            return legacyJarRequired.isEmpty() && !packageConfig.isLegacyJar() && !packageConfig.type.equalsIgnoreCase("legacy") ? this.buildThinJar(curateOutcomeBuildItem, outputTargetBuildItem, transformedClasses, applicationArchivesBuildItem, packageConfig, classLoadingConfig, applicationInfo, generatedClasses, generatedResources, additionalApplicationArchiveBuildItems, mainClassBuildItem) : this.buildLegacyThinJar(curateOutcomeBuildItem, outputTargetBuildItem, transformedClasses, applicationArchivesBuildItem, packageConfig, applicationInfo, generatedClasses, generatedResources, mainClassBuildItem);
        }
    }

legacyJarRequired中的项被添加到这里中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @BuildStep(onlyIf = IsNormal.class, onlyIfNot = NativeBuild.class)
    public void requireLegacy(BuildProducer<LegacyJarRequiredBuildItem> required) {
        required.produce(new LegacyJarRequiredBuildItem());
    }

如何避免将此元素添加到构建配置中以接收来自应用程序构建的版本化xxx-yyy-zzz-runner.jar

function.zip构建得很好,但对我来说不是一个选项,因为我想将构建的结果推到maven repo。

EN

回答 1

Stack Overflow用户

发布于 2022-01-24 12:13:44

我还需要将uber-jar部署到工件,以便作为AWS lambda进行进一步部署。最后我用build-helper-maven-plugin:attach-artifact插件解决了这个问题。它将function.zip附加到Nexus中的工件上,因此Jenkins能够获得存档并将其部署到AWS。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
                <goal>attach-artifact</goal>
            </goals>
            <configuration>
                <artifacts>
                    <artifact>
                        <file>./target/function.zip</file>
                        <type>zip</type>
                    </artifact>
                </artifacts>
            </configuration>
        </execution>
    </executions>
</plugin>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68528291

复制
相关文章
quarkus实战之二:应用的创建、构建、部署
备注:我的mac和ubuntu上的IDEA都没见到这个选项,难道我装了两个假的IDEA?
程序员欣宸
2022/04/13
2.1K0
quarkus实战之二:应用的创建、构建、部署
quarkus实战之五:细说maven插件
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demo 本篇概览 本文是《quarkus实战》系列的第五篇,一起去熟悉quarkus的maven插件(就是下图红框中的那个plugin),用好它可以使我们更加得心应手的在项目中配置和控制quarkus 插件quarkus-maven-plugin提供了丰富的功能,它们都有对应的命令,执行mvn quarkus:xxx即可执行,其中xxx就是具体的命令,例如mvn qu
程序员欣宸
2022/04/13
1.6K0
quarkus实战之五:细说maven插件
quarkus实战之八:profile
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus实战》系列的第八篇,经过前面的学习,咱们对配置有了足够了解,但问题也随之而来:如何让应用以最小的改动同时运行在不同环境(如本地、测试、生产等) 举个例子,下面是个简化版配置文件,有两个配置项,第一个固定不变,第二个随环境变化各不相同: # 这个配置信息在各个环境中都是相同的 greeting.message=hello # 这个配
程序员欣宸
2022/04/13
7960
quarkus实战之八:profile
AWS Lambda 快速入门
但以上的几个方法都需要关注服务器的存储和计算资源,以便随时调整以满足更高的性能,并且高并发的请求也是分时段的,配置了更高性能的服务器在访问量变低的时候也是资源浪费。
goodspeed
2020/12/22
2.7K0
AWS Lambda  快速入门
AWS lambda and dynamodb with Java
使用aws lambda已经一年多了,下面使用java构建一个简单的lambda服务,大家可以自己扩展想要的功能,废话不多说,开始吧。
wblearn
2020/09/16
1K0
支持JDK19虚拟线程的web框架,中篇:完整开发一个支持虚拟线程的quarkus应用
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是《支持JDK19虚拟线程的web框架》系列的中篇,前文咱们体验了有虚拟线程支持的web服务,经过测试,发现性能上它与其他两种常见web架构并无明显区别,既然如此,还有必要研究和学习吗? 当然有必要,而且还要通过实战更深入了解虚拟线程与常规线程的区别,在各大框架和库广泛支持虚拟线程之前,打好理论和实践基础,这才是本系列的目标 为了接下来的深入
程序员欣宸
2022/10/31
1.1K0
支持JDK19虚拟线程的web框架,中篇:完整开发一个支持虚拟线程的quarkus应用
支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《支持JDK19虚拟线程的web框架》系列文章链接 支持JDK19虚拟线程的web框架,之一:体验 支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用 支持JDK19虚拟线程的web框架,之三:观察运行中的虚拟线程 支持JDK19虚拟线程的web框架,之四:看源码,了解quarkus如何支持虚拟线程 支持JDK19虚拟线程
程序员欣宸
2022/12/02
9120
支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用
只会用 Spring Boot 创建微服务?那你就 OUT 了,还有这 4 种替代方案!
点击关注公众号,Java干货及时送达 前言 在 Java 和 Kotlin 中, 除了使用Spring Boot创建微服务外,还有很多其他的替代方案。 名称 开发商 Helidon SE 甲骨文 Ktor JetBrains Micronaut Object Computing Quarkus Red Hat Spring Boot Pivotal 本文,基于这些微服务框架,创建了五个服务,并使用Consul的服务发现模式实现服务间的 相互通信。因此,它们形成了异构微服务架构(Heterogeneous
Java技术栈
2022/09/27
6.2K0
只会用 Spring Boot 创建微服务?那你就 OUT 了,还有这 4 种替代方案!
只会用 Spring Boot 创建微服务?这 4 种替代方案了解一下!
来源:www.kubernetes.org.cn/9526.html 前言 在 Java 和 Kotlin 中, 除了使用Spring Boot创建微服务外,还有很多其他的替代方案。 图片 本文,基于这些微服务框架,创建了五个服务,并使用Consul的服务发现模式实现服务间的 相互通信。因此,它们形成了异构微服务架构(Heterogeneous Microservice Architecture, 以下简称 MSA): 图片 本文简要考虑了微服务在各个框架上的实现(更多细节请查看源代码:https :
程序猿DD
2023/04/04
2.5K0
只会用 Spring Boot 创建微服务?这 4 种替代方案了解一下!
从aws lambda谈serverless
一、基于aws lambda构建监控告警的思考二、什么是serverless?三、serverless解决了什么问题四、常见serverless应用场景五、为什么serverless淡出视野?六、参考
叔牙
2023/06/21
3720
从aws lambda谈serverless
AWS攻略——使用CodeBuild进行自动化构建和部署Lambda(Python)
        Aws Lambda是Amazon推出的“无服务架构”服务。我们只需要简单的上传代码,做些简单的配置,便可以使用。而且它是按运行时间收费,这对于低频访问的服务来说很划算。具体的介绍可以常见aws lambda的官网。(转载请指明出于breaksoftware的csdn博客)
方亮
2020/06/16
2.1K0
AWS攻略——使用CodeBuild进行自动化构建和部署Lambda(Python)
quarkus实战之六:配置
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus实战》系列的第六篇,咱们来掌握一个常用知识点:配置 如同SpringBoot中的application.properties文件,对一个quarkus应用来说,配置是其重要的组成部分,web端口、数据库这些重要信息都放在配置中,咱们在编码时也会将一些业务参数做成配置,而不是硬编码(hard code) 与配置有关的知识点不少,本文
程序员欣宸
2022/04/13
1.2K1
quarkus实战之六:配置
无服务器和 Kubernetes 原生 Java 部署实践
作者 | Daniel Oh 译者 | 平川 策划 | 丁晓昀 随着云部署的兴起,IT 部门使用的物理服务器减少,用电量也相应降低,结果是通过减少碳排放帮助缓解了气候变化。云架构有助于实现这一点,因为它们不需要维护竖井式的计算资源,而是在需要保持业务服务运行时,高效共享所在云上的可用资源。 然而短期内,云迁移的这些好处对于二氧化碳的排放并没有产生显著的影响。这是因为采用云的速度比转向无碳基础设施的速度要快得多。例如,谷歌云目前已实现碳中和,但他们正在努力成为无碳、可持续的云计算系统。 与此同时,开
深度学习与Python
2023/03/29
9260
无服务器和 Kubernetes 原生 Java 部署实践
手把手带你玩转 AWS Lambda
微服务架构有别于传统的单体式应用方案,我们可将单体应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作时不会互相影响
程序猿DD
2020/10/27
2.3K0
手把手带你玩转 AWS Lambda
我们为什么构建自己的 serverless 机器学习平台,而非使用 AWS Lambda?
本文最初发表于 Cortex 网站,经原作者 Caleb Kaiser 许可由 InfoQ 中文站翻译分享。
深度学习与Python
2021/02/22
3770
Serverless|Framework——图文玩转 AWS Lambda
| 好看请赞,养成习惯 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand i
用户4172423
2020/10/23
2.5K0
Serverless|Framework——图文玩转 AWS Lambda
aws lambda python 上传s3
代码编写 Code writing 编写lambda函数 Write lambda functions 主要功能是查询数据库,在本地生成test.csv,而后上传至s3://test-bucket-dev桶,bthlt目录下. test.csv is generated locally and uploaded to s3://test-bucket-dev bucket,bthlt path. import pymysql import logging import boto3 from botocore
葫芦
2021/12/20
2.2K1
aws lambda python 上传s3
Java 近期新闻:JDK 21 发布计划、Payara 平台、JBang、JHipster、WildFly
作者 | Michael Redlich 译者 | 平川 策划 | 丁晓昀 OpenJDK 2023 年理事会选举结果显示,Red Hat 开源 Java 技术主管 Andrew Haley 和 Oracle 技术咨询人员 Phil Race 已当选为董事会成员,填补了两个 At-Large 成员席位。选举结果将于2023 年 4 月 1 日生效,任期为一年。InfoQ 后续将带来更详细的新闻报道。 JEP 444(虚拟线程)从 JEP Draft 8303683 状态 提升 到 Candid
深度学习与Python
2023/04/14
2.1K0
Java 近期新闻:JDK 21 发布计划、Payara 平台、JBang、JHipster、WildFly
quarkus依赖注入之一:创建bean
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于依赖注入 对一名java程序员来说,依赖注入应该是个熟悉的概念,简单的说就是:我要用XXX,但我不负责XXX的生产 以下代码来自spring官方,serve方法要使用MyComponent类的doWork方法,但是不负责MyComponent对象的实例化,只要用注解Autowired修饰成员变量myComponent,spring环境会负责为myCompon
程序员欣宸
2022/04/13
1.1K0
quarkus依赖注入之一:创建bean
aws生产实践-22:aws上创建openvpn
https://github.com/hepyu/openvpn-install/blob/master/openvpn-install.sh
千里行走
2022/02/10
1.7K0
aws生产实践-22:aws上创建openvpn

相似问题

带有AWS lambda的本机Quarkus不构建

23

Quarkus Maven插件不再构建

12

Quarkus AWS Lambda通用处理程序

115

如何使用AWS SDK for Java 2.0创建Lambda函数

124

使用maven为aws lambda创建python部署包

18
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文