#java #maven #google-app-engine #gwt
#java #maven #google-app-engine #gwt
Вопрос:
У меня есть проект GWT с несколькими модулями (клиентский, серверный, общий, ..), И у меня есть требование, чтобы режим Super Dev должен запускаться на сервере разработчиков App engine. После компиляции клиентской части я использую Ant-скрипт, который копирует файлы компиляции клиента GWT в каталог серверного модуля «war», и я использую следующую конфигурацию из серверного модуля:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.7.0</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test</goal>
<goal>generateAsync</goal>
</goals>
</execution>
</executions>
<configuration>
<runTarget>index.html</runTarget>
<modules>
<module>module1</module>
<module>module2</module>
</modules>
<codeServerPort>9997</codeServerPort>
<executedProject>
<basedir>../${basedir}/the-project-with-the-client-side-classes/</basedir>
<artifactId>client-artifact-id</artifactId>
<version>1.0</version>
</executedProject>
<server>com.google.appengine.tools.development.gwt.AppEngineLauncher</server>
<warSourceDirectory>${project.build.directory}/${project.build.finalName}</warSourceDirectory>
</configuration>
</plugin>
Я попробовал <executedProject>
вариант, в котором я пытаюсь указать basedir, где я хочу, чтобы плагин выполнял компиляцию GWT, но я не уверен, правильно ли я его использую. Он выдает исключение нулевого указателя:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:gwt-maven-plugin:2.7.0:run (default-cli) on project server: Execution default-cli of goal org.codehaus.mojo:gwt-maven-plugin:2.7.0:run failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.codehaus.mojo:gwt-maven-plugin:2.7.0:run failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: java.lang.NullPointerException
at java.io.File.<init>(File.java:277)
at org.codehaus.mojo.gwt.ClasspathBuilder.buildClasspathList(ClasspathBuilder.java:82)
at org.codehaus.mojo.gwt.AbstractGwtMojo.getClasspath(AbstractGwtMojo.java:223)
at org.codehaus.mojo.gwt.shell.RunMojo.doExecute(RunMojo.java:327)
at org.codehaus.mojo.gwt.shell.AbstractGwtShellMojo.execute(AbstractGwtShellMojo.java:159)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 21 more
Любая помощь будет оценена
Комментарии:
1. Зачем вам нужно запускать его из сборки Maven?
2. Ну, чтобы упростить задачу для других людей, работающих над проектом, я мог бы использовать другой Ant-скрипт, но я оставляю это на крайний случай
3. Причина, по которой я спрашиваю, мне проще запускать приложение из среды IDE, но могут быть веские причины против этого
4. Я согласен. Фактически, проект был в формате eclipse, но он преобразуется в формат Maven по многим причинам, в основном из-за большого количества зависимостей.