JavaGradleWorkflow includes extraneous files if other archive artifacts are defined
Les mainteneurs répondent en général sous 9 jours
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 38/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- java
- Domaine
- build-system
Piste de recherche
Commencez par aws_lambda_builders/workflows/java_gradle/resources/lambda-build-init.gradle, en particulier par la sélection de l’artefact d’archive et les étapes GradleBuild et CopyArtifacts de JavaGradleWorkflow. Reproduisez le problème avec les commandes documentées sam init, application-plugin edit, sam build et find. Le travail est terminé lorsque le build inclut les classes de l’application et les JAR de dépendances sans le répertoire de distribution inutile de l’application ni ses fichiers.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Python
- Étoiles
- 381
- Forks
- 161
- Merge moyen
- 8 j 4 h
- PR mergées (30 j)
- 3
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de aws/aws-lambda-builders
-
python_uv: `UvConfig.compile_bytecode` is never passed to uv, so the option has no effectPeut-être pris @xujiantop-crypto l’a pris il y a 39 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
aws/aws-lambda-builders#925 · 1 réaction ·
Les mainteneurs répondent en général sous 9 jours
-
Bytecode compiled during build is always discarded at runtime: SAM packaging writes 1980 timestamps, so timestamp-based .pyc never validatePeut-être pris @xujiantop-crypto l’a pris il y a 39 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 64/100
aws/aws-lambda-builders#924 · 1 commentaire · 1 réaction ·
Les mainteneurs répondent en général sous 9 jours
-
Bug: PythonUvBuilder fails to build app with dependencies on editable installs in the workspacePeut-être pris @noritada l’a pris il y a 108 jours. Ouvertestage/needs-triage
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
aws/aws-lambda-builders#892 ·
Les mainteneurs répondent en général sous 9 jours
-
stage/needs-triage type/feature
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
aws/aws-lambda-builders#839 · 2 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 9 jours
-
Feature request: Skip binary validation when builder is not used for any languagePeut-être à nouveau libre @saketh-bandi l’a pris il y a 53 jours, et aucune pull request n’est ouverte. Ouvertearea/build contributors/good-first-issue contributors/welcome type/feature
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
aws/aws-lambda-builders#831 · 3 commentaires ·
Les mainteneurs répondent en général sous 9 jours
Toutes les issues de aws/aws-lambda-builders
Issues similaires
-
[Resource] agent-claimcheckOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
yzhao062/awesome-auditable-ai#45 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
NVIDIA/flare-local-inference#90 ·
Les mainteneurs répondent en général sous 1 jour
-
area/streaming comp/gateway P2 platform/telegram type/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
NousResearch/hermes-agent#144897 ·
Les mainteneurs répondent en général sous 1 jour
-
request-theme
Difficulté 1/5 Moins d'une heure Accessibilité débutants 66/100
LizardByte/ThemerrDB#9575 ·
Les mainteneurs répondent en général sous 1 jour