Comments (5)
Lazy property evaluation is not supported in this plugin. Leaving it open as a feature request.
from appengine-plugins.
Note that this is happening for other properties too.
e.g. this also doesn't work:
setAppEngineDirectory(buildAppEngineDirectoryTask.map {
it.outputDirectory
})
The problem seems to be in these lines where the inputs are being normalized into a file immediately.
If you change StageAppYamlExtension
's properties to RegularFileProperty
, that should fix the issue but not sure if you would need to break API to do that.
from appengine-plugins.
We would accept a user contribution for the feature.
Backwards compatibility would be ideal, although not always possible (e.g. the user programmatically accessing the value will have to call .get()
on the object, which is not needed when the value is a string).
from appengine-plugins.
Wanted to open a similar issue. Laziness is missing overall. The problem goes as far as NPE in some cases because a task is not realized yet, so a workaround like this is needed:
// Eagerly configure Jar task, because AppEngineAppYamlPlugin uses Groovy properties APIs to access it.
tasks.named("jar").get()
Based on best practices from Google's very own @liutikas, here are some easily fixable red flags from AppEngineAppYamlPlugin
:
project.getTasks().create().
->.getTasks().register
project.afterEvaluate {}
->Provider.map
and Gradle org.gradle.api.provider.Propertyproject.getTasks().getByName()....
->getTasks().named().configure { }
project.getProperties().get("jar")
->getTasks().named("jar")
+ provider
They all have solutions, some are breaking as you described above. Would anyone be willing to collab on having a stab at this with me? And would anyone from @GoogleCloudPlatform
promise to review the changes we make to land it, because it looks like @chanseokoh tried something similar 1.5 years ago, but it stalled.
from appengine-plugins.
Still interested by this. Haven't looked at my GCP projects for a while but I can try to do a small PR at some point to get the ball rolling. Happy to review/test anything too.
from appengine-plugins.
Related Issues (20)
- Remove usage of WarPluginConvention HOT 5
- Fixing Flaky Test HOT 1
- Security Policy violation Binary Artifacts HOT 6
- Make app-gradle-plugin configuration cache compatible HOT 6
- Fix Kokoro windows build script from environment change
- Normalize labels based on the internal mapping
- "--add-opens" flags are being added to JDK 8 invocations HOT 5
- FilePermissionTest fails on release_build.sh HOT 1
- Fix `prepare-release.yml` CI job HOT 1
- fix failing kokoro-windows test
- Support for GAE Java21 is coming soon HOT 1
- how to choose the environment in app engine gradle plugin ? HOT 4
- Java17 - appengine:run - Does not add JAVA_USER_OPTS to run command HOT 9
- [deploy] how to specify "no-cache" flag? HOT 2
- appengine-gradle-plugin:2.5.0 throws an error with Gradle 8.5
- Appengine plugins: Migrate GCR image to Artifact Registry HOT 3
- Infinite loop Vulnerability in commons-compress library version being used HOT 14
- Explain how to use `extraFilesDirectories` in gradle HOT 2
- com.google.apphosting.utils.config.AppEngineConfigException: Could not locate /tmp/tmpEarArea5562840872139100552/WEB-INF/appengine-web.xml HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from appengine-plugins.