What is the difference between these two Maven plugins?
- com.google.appengine::appengine:appengine-maven-plugin
- Older
- Cloud-SDK Based
- com.google.cloud.tools::appengine-maven-plugin
- Newer
- Is it recommended over the other one?
- What is the relation to appcfg? Is it simply that appcfg is a component of the Cloud-SDK (where the Cloud-SDK consists of gcloud and related CLI tools)
- Will an upcoming version depend on the Google AppEngine SDK for Java?
- I see that Google Cloud Tools for Eclipse interacts well with Maven, so that Maven can handle dependency management, goals etc. Does the Google Cloud Tools for Eclipse bundle/use the com.google.cloud.tools::appengine-maven-plugin?
To answer your questions:
- Is it recommended over the other one?
It's actually recommended to use the App Engine standalone SDK based plugin for now, due to some issues with the development server in the Cloud SDK.
- See also the related discussion for more details.
- What is the relation to appcfg? Is it simply that appcfg is a component of the Cloud-SDK (where the Cloud-SDK consists of gcloud and related CLI tools)?
The Cloud SDK based plugin doesn't have any dependency on appcfg. It uses the gcloud command from the Cloud SDK to manage operations (eg. gcloud app deploy). It still invokes dev_appserver, but this is a newer version (v2) than the one included in the standalone SDK (v1) and currently has some issues as mentioned above.- Will an upcoming version depend on the Google App Engine SDK for Java?
No, as the point of the plugin is to move away from the standalone SDK and support the Cloud SDK.- I see that Google Cloud Tools for Eclipse interacts well with Maven, so that Maven can handle dependency management, goals etc. Does the Google Cloud Tools for Eclipse bundle/use the com.google.cloud.tools::appengine-maven-plugin?
When you create a project using the template 'Maven-based Google App Engine Standard Java Project', it will create a Maven project using the appengine-standard-archetype archetype that uses the com.google.cloud.tools::appengine-maven-plugin. This is just a UX convenience for creating a regular Maven project that uses that same archetype.
On Sunday, April 30, 2017 at 9:30:39 AM UTC-4, Joshua Fox wrote:What is the difference between these two Maven plugins?
- com.google.appengine::appengine:appengine-maven-plugin
- Older
- Cloud-SDK Based
- com.google.cloud.tools::appengine-maven-plugin
- Newer
- Is it recommended over the other one?
- What is the relation to appcfg? Is it simply that appcfg is a component of the Cloud-SDK (where the Cloud-SDK consists of gcloud and related CLI tools)
- Will an upcoming version depend on the Google AppEngine SDK for Java?
- I see that Google Cloud Tools for Eclipse interacts well with Maven, so that Maven can handle dependency management, goals etc. Does the Google Cloud Tools for Eclipse bundle/use the
- com.google.cloud.tools::appengine-maven-plugin?
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscribe@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/48be9f57-91ae-44ab-a47e-f8e325e20ba8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/CAD%3DB7cP7-kNkvYycn3f_102aeAyWiY2JbmvUMABxHT0miSo1dw%40mail.gmail.com.
Actually, the Cloud SDK based tooling now uses dev_appserver v1, not dev_appserver v2 to run your GAE Standard Java apps.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/5af4398a-e787-4fe2-b9e5-3af032f2c187%40googlegroups.com.
a. Do I need Google Cloud Tools for Eclipse?b. We are using the Cloud-SDK-Based 1.30 Maven plugin which has dev-appserver v1. If we wait until Cloud-SDK-Based Maven plugin goes back to dev-appserver v2, (how long might hat be), will we be able to debug with a Cloud-SDK-Based Maven project (opened in Eclipse, but without Google Cloud Tools for Eclipse)?
a. Is it Cloud Tools for Eclipse with the Cloud-SDK-Based Maven plugin?b. Or just Cloud-SDK-Based Maven plugin without Cloud Tools for Eclipse?
- We actually don't need "Flex support" in the sense of a local Docker or builtin deployment. So the fact that Cloud Tools for Eclipse is said to not support Flex might not be relevant.- For launching an appserver, we can use the Maven-Jetty plugin (org.eclipse.jetty::jetty-maven-plugin v 9.4.2)- But I am not sure if that is the full recommended setup. What do you suggest?
You need to use remote debugging to debug App Engine applications in Eclipse as the debugger must connect to the Jetty instance running on localhost.a. You don't need to use Google Cloud Tools for Eclipse as both maven plugins support the jvmFlags option which allows you to provide the necessary JVM flags for debugging:<configuration><jvmFlags><jvmFlag>-Xdebug</jvmFlag><jvmFlag>-Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n</jvmFlag></jvmFlags></configuration>See the related discussion in an issue on the old plugin's project page for a solution involving Maven profiles (this applies equally to the new plugin as the same parameter is supported).
b. The ability to connect the debugger isn't dependent on the version of dev_appserver, which is mostly a Python wrapper around Jetty, so yes you would still be able to debug with either plugin. Note that as Jeff mentioned you can also use both plugins in your project.
a. Cloud Tools for Eclipse seems to be more of a 'getting started quickly' solution, with some UI conveniences but fewer features, so for more serious projects I'd personally recommend the Maven plugin.b. This really depends on your needs. There's nothing you can do with the Cloud Tools plugin that you can't do with the Maven plugin, and as mentioned you can also use both (one is a plugin for Maven via pom.xml, the other is for the Eclipse project proper, and they don't mess with each other).
No special App-Enginey bits are needed to test a flexible runtime app locally or manage it in Eclipse. This is covered in the docs; you can use mvn jetty:run-exploded with the Jetty plugin if you're on a Jetty based runtime or just mvn package; java -jar target/myjar.jar on any other runtime. A flexible runtime Java app is essentially just a Dockerized Java app that happens to run on the Flexible runtime.
1. If I want to debug my projects without using "remote debugging"?You need to use remote debugging to debug App Engine applications in Eclipse as the debugger must connect to the Jetty instance running on localhost.
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscribe@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/e0ad51ba-3dc0-45cd-8743-2fb1f9ba55a7%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/428996ed-dac8-46b5-bfb0-7457adc8702c%40googlegroups.com.
Launching two separate processes (first appengine:runfrom the Cloud-SDK-Based Maven plugin, then the remote debug process) is particularly inconvenient given that dozens of developer must do this many times a day.
On 8-May-2017, at 6:43 AM, Joshua Fox <jos...@freightos.com> wrote:
We have been using the Google Plugin for Eclipse (now end-of-life). There, we are able to launch an Eclipse Debug configuration that puts us right into the debugger. (Screenshot attached.)
Launching two separate processes (first appengine:runfrom the Cloud-SDK-Based Maven plugin, then the remote debug process) is particularly inconvenient given that dozens of developer must do this many times a day.
We'd like to have the same simplicity of a single launch.
<image.png>
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/CAD%3DB7cNDQGd%2BJY1ynuPVRECXLKnGmHSQUCGRkYffOndgRnA4wA%40mail.gmail.com.
Josuha, you can use the Cloud Tools for Eclipse (CT4E, the successor to GPE) for launching even with Maven based plugins.
a. Cloud Tools for Eclipse seems to be more of a 'getting started quickly' solution, with some UI conveniences but fewer features, so for more serious projects I'd personally recommend the Maven plugin.b. This really depends on your needs. There's nothing you can do with the Cloud Tools plugin that you can't do with the Maven plugin,
I didn't see a reference to this in the email thread, but I'm guessing you're launching multiple services? Launching multiple services is supported by CT4E.
With regard to Flex, CT4E is concentrating on the deployment side of the story.
For run/debug, the solutions right now are to use the Maven goals or other plugins like Run Jetty Run:
Brian.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/CAD%3DB7cNDQGd%2BJY1ynuPVRECXLKnGmHSQUCGRkYffOndgRnA4wA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscribe@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/6F1FFE0D-FA89-48B4-8AEA-FFE025D49486%40gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/CAD%3DB7cNzKovZhFycUgPv1K1AsMhxyP4buohN23FxpOUaaie0FA%40mail.gmail.com.
Eclipse incremental compiler and WTP to enable immediate run/debug and class replacement at debug-time
On Sat, May 6, 2017 at 11:08 PM, 'Adam (Cloud Platform Support)' via Google App Engine <google-appengine@googlegroups.com> wrote:
...
a. Cloud Tools for Eclipse seems to be more of a 'getting started quickly' solution, with some UI conveniences but fewer features, so for more serious projects I'd personally recommend the Maven plugin.
b. This really depends on your needs. There's nothing you can do with the Cloud Tools plugin that you can't do with the Maven plugin, and as mentioned you can also use both (one is a plugin for Maven via pom.xml, the other is for the Eclipse project proper, and they don't mess with each other).
Brian.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/CAD%3DB7cNzKovZhFycUgPv1K1AsMhxyP4buohN23FxpOUaaie0FA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscribe@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/D1643573-A6EB-49BA-9C79-F06597D2EFA8%40gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/CAD%3DB7cO2GiJX_iWtmYuO0LxtmLxH%2B7QG9%2BoK7TybUPnHPm5LOA%40mail.gmail.com.
CT4E offers two styles of App Engine projects for the standard environment:
The first one, the Google App Engine Standard Java Project, is a "native" WTP-based Eclipse project style. The Maven-based Google App Engine Standard Java Project creates a Maven-based project using the new Maven App Engine plugins. This Maven project uses M2Eclipse and its accompanying m2e-wtp bindings to integrate with Eclipse, which works very well.So I believe Adam is recommending using Maven-based projects for important projects, like what is created by the second wizard. I agree with that recommendation as it allows leveraging the many tools in the Maven ecosystem and works well with existing CI/CD solutions.Brian.
On 9-May-2017, at 4:59 AM, Joshua Fox wrote:
Eclipse incremental compiler and WTP to enable immediate run/debug and class replacement at debug-timeThank you. That makes sense.Adam of Cloud Platform Support, your statement (copied immediately below in blue ) seems to contradict Brian's. Could you please explain?
On Sat, May 6, 2017 at 11:08 PM, 'Adam (Cloud Platform Support)' via Google App Engine <google-appengine@googlegroups.com> wrote:...
a. Cloud Tools for Eclipse seems to be more of a 'getting started quickly' solution, with some UI conveniences but fewer features, so for more serious projects I'd personally recommend the Maven plugin.b. This really depends on your needs. There's nothing you can do with the Cloud Tools plugin that you can't do with the Maven plugin, and as mentioned you can also use both (one is a plugin for Maven via pom.xml, the other is for the Eclipse project proper, and they don't mess with each other).
On Mon, May 8, 2017 at 5:30 PM, Brian de Alwis wrote:
CT4E is to the Maven plugin as m2eclipse is for maven: it uses Eclipse for what Eclipse does best, and Maven for what Maven does best. CT4E leverages the Eclipse incremental compiler and WTP to enable immediate run/debug and class replacement at debug-time without having to restart the world. And it also supports deployment from within Eclipse.
Brian.On 8-May-2017, at 9:23 AM, Joshua Fox wrote:
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/ee20e6dd-e47b-4a14-9df3-a2e2578e3e2c%40googlegroups.com.
The first one, the Google App Engine Standard Java Project, is a "native" WTP-based Eclipse project style. The Maven-based Google App Engine Standard Java Project creates a Maven-based project using the new Maven App Engine plugins.
leveraging the many tools in the Maven ecosystem and works well with existing CI/CD solutions.
Yup, CT4E connects up the Eclipse Platform/Debug and JDT/Debug support, which works across JDWP (a component of JPDA), to debug the dev_appserver. But fortunately nobody needs to ever know about it!
Launching two separate processes (first appengine:runfrom the Cloud-SDK-Based Maven plugin, then the remote debug process) is particularly inconvenient given that dozens of developer must do this many times a day.
On 10-May-2017, at 7:48 AM, Joshua Fox <jos...@freightos.com> wrote:
> I guess both approaches provide hot reload? (Debug-time class reloading.)
CT4E uses the same Eclipse facilities used for Java projects to download new class definitions to the remote JVM. This allows in-place modification of a class without having to restart the web module, providing the remote JVM allows hot-swapping in the changed class definition.
The Maven App Engine plugins support hot reload but with a very different approach: it launches the dev_appserver on the exploded war file (i.e., extracted on disk) such that the .class files are overwritten during the Maven compilation; the dev_appserver detects the file changes and restarts the web server. This usually requires re-connecting to the debugger though.
> What about incremental compilation? (E..g, add a class or static method and launch the debugger, and only a few relevant class files are recompiled, then launch debug session, with no wait for a war to be built.)
CT4E is based on Eclipse WTP which supports incremental building and publishing. CT4E doesn't build wars (and the dev_appserver doesn't want a war).
> I should add that we separate our code into multiple Maven-modules for modularity. (This translates to one Eclipse project per Maven module.) So, the above features would have to work with that.
CT4E leverages m2e-wtp for multi-module support, and it works with no issue that we're aware of.
Brian.
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscribe@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/A1D50FD3-C82F-432F-8581-96FB69C1C8C8%40gmail.com.
For more options, visit https://groups.google.com/d/optout.
On Monday, May 8, 2017 at 6:45:56 AM UTC-4, Joshua Fox wrote:
Launching two separate processes (first appengine:runfrom the Cloud-SDK-Based Maven plugin, then the remote debug process) is particularly inconvenient given that dozens of developer must do this many times a day.I'm not sure I follow. It's always two separate processes, no matter how you launch. With Cloud Tools for Eclipse you can launch both with a single action: Debug As > App Engine.
If you need a more custom local server environment with extra command line arguments and what not, you can create that in Eclipse like any other launch configuration and save it for future one-click use form the Debug menu.
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscribe@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/85c0f120-e62d-4ba9-ad4c-49779a7ddd43%40googlegroups.com.
<build>
<outputDirectory>target/${project.artifactId}-${project.version}/WEB-INF/classes</outputDirectory>
<plugins>
....
</plugins>
</build>
On Mon, May 8, 2017 at 2:35 PM, 'Elliotte Rusty Harold' via Google App Engine <google-a...@googlegroups.com> wrote:
On Monday, May 8, 2017 at 6:45:56 AM UTC-4, Joshua Fox wrote:
Launching two separate processes (first appengine:runfrom the Cloud-SDK-Based Maven plugin, then the remote debug process) is particularly inconvenient given that dozens of developer must do this many times a day.I'm not sure I follow. It's always two separate processes, no matter how you launch. With Cloud Tools for Eclipse you can launch both with a single action: Debug As > App Engine.
Thank you. Yes, that is what I meant -- the convenience of launching with a single action. If behind the scenes there are two processes, that is fine.
If you need a more custom local server environment with extra command line arguments and what not, you can create that in Eclipse like any other launch configuration and save it for future one-click use form the Debug menu.
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/85c0f120-e62d-4ba9-ad4c-49779a7ddd43%40googlegroups.com.
- Hot reload during debug -- yes (per Appu's latest answer)- Incremental compilation during development -- yes- Rapid launch (under 2 seconds, avoiding wait for the war to be rebuilt and copied) -- no (?)- One-launch debug (avoiding the need to launch twice: the server, then the "remote" debugger) -- no- Multi-Maven-module support -- yes2: .... with CT4E on top of the Cloud-SDK based Maven plugin?- Hot reload -- yes- Incremental compilation -- yes- Rapid launch -- yes (per Appu's latest answer)- One-launch debug -- yes- Multi-Eclipse-Project support (correctly tracking dependencies in a multi-Maven-module workspace) -- yes
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscribe@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/6e6eee8c-aab9-4355-8fa8-7ddd55b62e5f%40googlegroups.com.