JavaGradleWorkflow includes extraneous files if other archive artifacts are defined
I maintainer di solito rispondono entro 10 giorni
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 38/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- java
- Ambito
- build-system
Direzione di ricerca
Inizia da aws_lambda_builders/workflows/java_gradle/resources/lambda-build-init.gradle, in particolare dalla selezione dell’artefatto dell’archivio e dai passaggi GradleBuild e CopyArtifacts di JavaGradleWorkflow. Riproduci il problema con i comandi documentati sam init, application-plugin edit, sam build e find. Il lavoro è completato quando la build include le classi dell’applicazione e i JAR delle dipendenze senza l’inutile directory di distribuzione dell’applicazione e i relativi file.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description:
In certain Gradle projects, running sam build may include files in the bundle that aren't needed.
This occurs because the logic for grabbing the project's jar is actually pulling the contents of all defined archive artifacts, some of which may be for other purposes entirely. In most cases, this doesn't "break" anything, but just increases the size of the deployment bundle silently.
One example of a situation that would cause this is a Java project with the built-in "application" plugin applied, which then produces additional zip and tar distribution artifacts.
One potential fix would be to change https://github.com/awslabs/aws-lambda-builders/blob/develop/aws_lambda_builders/workflows/java_gradle/resources/lambda-build-init.gradle#L27 from def artifactJars = t.project.configurations.archives.artifacts.files.files to def artifactJars = configurations.archives.artifacts.findAll { it.extension == 'jar' }*.file.
Steps to reproduce the issue:
- Run
sam init --runtime java8 --dependency-manager gradle --name gradlebuildtest - Run
cd gradlebuildtest/ - Run
sam build && find .aws-sam/build/HelloWorldFunction -type f(Expected result) - Remove the previous result:
rm -rf .aws-sam/ - Edit
HelloWorldFunction/build.gradleas follows- Add
id 'application'to thepluginsblock - Add
mainClassName = 'helloworld.App'(it's not actually executable yet, but that doesn't matter for demonstrating this behavior)
- Add
- Run
sam build && find .aws-sam/build/HelloWorldFunction -type f(Observed result) - Note that there is now an unnecessary
HelloWorldFunctiondirectory included.
Observed result:
mac-dcarr:gradlebuildtest dcarr$ sam build && find .aws-sam/build/HelloWorldFunction -type f
Building resource 'HelloWorldFunction'
Running JavaGradleWorkflow:GradleBuild
Running JavaGradleWorkflow:CopyArtifacts
Build Succeeded
Built Artifacts : .aws-sam/build
Built Template : .aws-sam/build/template.yaml
Commands you can use next
=========================
[*] Invoke Function: sam local invoke
[*] Package: sam package --s3-bucket <yourbucket>
.aws-sam/build/HelloWorldFunction/helloworld/GatewayResponse.class
.aws-sam/build/HelloWorldFunction/helloworld/App.class
.aws-sam/build/HelloWorldFunction/HelloWorldFunction/bin/HelloWorldFunction
.aws-sam/build/HelloWorldFunction/HelloWorldFunction/bin/HelloWorldFunction.bat
.aws-sam/build/HelloWorldFunction/HelloWorldFunction/lib/aws-lambda-java-core-1.2.0.jar
.aws-sam/build/HelloWorldFunction/HelloWorldFunction/lib/HelloWorldFunction.jar
.aws-sam/build/HelloWorldFunction/META-INF/MANIFEST.MF
.aws-sam/build/HelloWorldFunction/lib/aws-lambda-java-core-1.2.0.jar
mac-dcarr:gradlebuildtest dcarr$
Expected result:
mac-dcarr:gradlebuildtest dcarr$ sam build && find .aws-sam/build/HelloWorldFunction -type f
Building resource 'HelloWorldFunction'
Running JavaGradleWorkflow:GradleBuild
Running JavaGradleWorkflow:CopyArtifacts
Build Succeeded
Built Artifacts : .aws-sam/build
Built Template : .aws-sam/build/template.yaml
Commands you can use next
=========================
[*] Invoke Function: sam local invoke
[*] Package: sam package --s3-bucket <yourbucket>
.aws-sam/build/HelloWorldFunction/helloworld/GatewayResponse.class
.aws-sam/build/HelloWorldFunction/helloworld/App.class
.aws-sam/build/HelloWorldFunction/META-INF/MANIFEST.MF
.aws-sam/build/HelloWorldFunction/lib/aws-lambda-java-core-1.2.0.jar
mac-dcarr:gradlebuildtest dcarr$
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
Scripts were run on Mac OS X 10.14.6; SAM CLI, version 0.23.0.
- Lingua principale
- Python
- Stelle
- 381
- Fork
- 161
- Merge medio
- 9g 8h
- PR unite (30g)
- 2
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di aws/aws-lambda-builders
-
python_uv: `UvConfig.compile_bytecode` is never passed to uv, so the option has no effectForse già presa @xujiantop-crypto l’ha presa 26 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
aws/aws-lambda-builders#925 · 1 reazione ·
I maintainer di solito rispondono entro 10 giorni
-
Bytecode compiled during build is always discarded at runtime: SAM packaging writes 1980 timestamps, so timestamp-based .pyc never validateForse già presa @xujiantop-crypto l’ha presa 26 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 64/100
aws/aws-lambda-builders#924 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 10 giorni
-
Bug: PythonUvBuilder fails to build app with dependencies on editable installs in the workspaceForse già presa @noritada l’ha presa 95 giorni fa. Apertastage/needs-triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
aws/aws-lambda-builders#892 ·
I maintainer di solito rispondono entro 10 giorni
-
stage/needs-triage type/feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
aws/aws-lambda-builders#839 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 10 giorni
-
Feature request: Skip binary validation when builder is not used for any languageForse di nuovo libera @saketh-bandi l’ha presa 39 giorni fa e non c’è nessuna pull request aperta. Apertaarea/build contributors/good-first-issue contributors/welcome type/feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
aws/aws-lambda-builders#831 · 3 commenti ·
I maintainer di solito rispondono entro 10 giorni
Tutte le issue di aws/aws-lambda-builders
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 87/100
adri0/scadustats#128 ·
I maintainer di solito rispondono entro 1 giorno
-
`TIMESTAMP`, `TIMESTAMP_NTZ`, `TINYINT` and the other `TypeDecorator`s don't declare `python_type`Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
RPBCApertaawaiting policy acceptance precheck-passed
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
Bioconductor/BiocContributions#240 · 1 commento ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue launch
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
FlologixAI/etchwork#4 ·