JavaMavenWorkflow sam build fails with `[Errno 20] Not a directory`
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 領域
- build-system, cli
調査の方向性
JavaMavenWorkflow とその CopySource ステップから始め、次に traceback に示されている copytree 呼び出しを調べます。CodeUri が lambdas/mainlambda/target/lambda.jar を指す状態で sam build --debug を再現し、想定される Maven reactor コマンドと比較します。既存のプロジェクトが NotADirectoryError なしで JAR をビルドできれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Getting an error when running sam build in an existing project of mine,
where the sam template has a CodeUri that points to a JAR file in a reactor build submodule.
Steps to reproduce the issue:
- existing java maven project using reactor builds with
1.1 a shaded jar generated in a maven submodule's target directory
(<project-top-level>/lambdas/mainlambda/target/lambda.jarin my case)
1.2 a template.yaml in the<project-top-level>directory using
CodeUri: lambdas/mainlambda/target/lambda.jar - cd
<project-top-level> sam build --debug
Observed result:
2019-04-28 19:31:55 Collected default values for parameters: {}
2019-04-28 19:31:55 12 resources found in the template
2019-04-28 19:31:55 Found Serverless function with name='LatestFunction' and CodeUri='lambdas/mainlambda/target/lambda.jar'
2019-04-28 19:31:55 Found Serverless function with name='LiveFunction' and CodeUri='lambdas/mainlambda/target/lambda.jar'
2019-04-28 19:31:55 Found Serverless function with name='TestRunnerFunction' and CodeUri='lambdas/testlambda/target/lambda.jar'
2019-04-28 19:31:55 Building resource 'LatestFunction'
2019-04-28 19:31:55 Looking for a supported build workflow in following directories: ['<scrubbed>/GitRepos/someproject/lambdas/mainlambda/target/lambda.jar', '<scrubbed>/GitRepos/someproject']
2019-04-28 19:31:55 Loading workflow module 'aws_lambda_builders.workflows'
2019-04-28 19:31:55 Registering workflow 'PythonPipBuilder' with capability 'Capability(language='python', dependency_manager='pip', application_framework=None)'
2019-04-28 19:31:55 Registering workflow 'NodejsNpmBuilder' with capability 'Capability(language='nodejs', dependency_manager='npm', application_framework=None)'
2019-04-28 19:31:55 Registering workflow 'RubyBundlerBuilder' with capability 'Capability(language='ruby', dependency_manager='bundler', application_framework=None)'
2019-04-28 19:31:55 Registering workflow 'GoDepBuilder' with capability 'Capability(language='go', dependency_manager='dep', application_framework=None)'
2019-04-28 19:31:55 Registering workflow 'GoModulesBuilder' with capability 'Capability(language='go', dependency_manager='modules', application_framework=None)'
2019-04-28 19:31:55 Registering workflow 'JavaGradleWorkflow' with capability 'Capability(language='java', dependency_manager='gradle', application_framework=None)'
2019-04-28 19:31:55 Registering workflow 'JavaMavenWorkflow' with capability 'Capability(language='java', dependency_manager='maven', application_framework=None)'
2019-04-28 19:31:55 Registering workflow 'DotnetCliPackageBuilder' with capability 'Capability(language='dotnet', dependency_manager='cli-package', application_framework=None)'
2019-04-28 19:31:55 Found workflow 'JavaMavenWorkflow' to support capabilities 'Capability(language='java', dependency_manager='maven', application_framework=None)'
2019-04-28 19:31:55 Running workflow 'JavaMavenWorkflow'
2019-04-28 19:31:55 Running JavaMavenWorkflow:CopySource
2019-04-28 19:31:55 JavaMavenWorkflow:CopySource raised unhandled exception
Traceback (most recent call last):
File "<scrubbed>/.virtualenvs/aws/lib/python3.6/site-packages/aws_lambda_builders/workflow.py", line 248, in run
action.execute()
File "<scrubbed>/.virtualenvs/aws/lib/python3.6/site-packages/aws_lambda_builders/actions.py", line 101, in execute
copytree(self.source_dir, self.dest_dir, ignore=shutil.ignore_patterns(*self.excludes))
File "<scrubbed>/.virtualenvs/aws/lib/python3.6/site-packages/aws_lambda_builders/utils.py", line 43, in copytree
names = os.listdir(source)
NotADirectoryError: [Errno 20] Not a directory: '<scrubbed>/GitRepos/someproject/lambdas/mainlambda/target/lambda.jar'
Expected result:
I would expect it to run the equivalent of
(in <project-top-level> folder)
mvn package -Dmaven.test.skip=true -pl lambdas/mainlambda -am
Which is what i run when I want to just build lambda.jar
-pl lambdas/mainlambdabecause that is the module folder of thetargetfolder wherelambda.jaris located.-ambecause otherwise reactor builds will fail-Dmaven.test.skip=truebecause when run from the aws-toolkit, you don't want to rerun the whole test suite (?)
This sam build failure is preventing me from creating launch configurations using aws-toolkit for Intellij.
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
I don't believe my environment makes any difference in this issue, but I'll answer any request for more information if that is deemed necessary
- 主要言語
- Python
- スター
- 381
- フォーク
- 162
- 平均マージ
- 1日 1時間
- マージ済み PR(30日)
- 2
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
aws/aws-lambda-builders のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
aws/aws-lambda-builders#925 · リアクション 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 64/100
aws/aws-lambda-builders#924 · コメント 1 件 · リアクション 1 件 ·
-
Bug: PythonUvBuilder fails to build app with dependencies on editable installs in the workspace オープンstage/needs-triage
難易度 3/5 1〜2日 初心者へのやさしさ 25/100
aws/aws-lambda-builders#892 ·
-
stage/needs-triage type/feature
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
aws/aws-lambda-builders#839 · コメント 2 件 · リアクション 1 件 ·
-
area/build contributors/good-first-issue contributors/welcome type/feature
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
aws/aws-lambda-builders#831 · コメント 3 件 ·
aws/aws-lambda-builders の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
stephrobert/dsoxlab#238 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
sublimehq/package_control#1780 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
nwg-piotr/nwg-displays#145 ·