use*_*128 8 google-app-engine maven
我们最近根据以下结构将我们的app引擎项目转换为模块.这个新的开发工作流程的问题是我们必须在每次更改时重建EAR并重新启动应用程序引擎本地开发服务器.每次我们对代码进行更改并想要测试时,这会使我们松散30分钟到一分钟.
/commons
-pom.xml
/model
-pom.xml
/webapp //app engine module
-pom.xml
/apis //app engine module
-pom.xml
/ear
-pom.xml
pom.xml //main (parent) project pom
Run Code Online (Sandbox Code Playgroud)
在我们之前的工作流程中,使用单片应用程序,我们可以使用app引擎的热重新加载功能,其中自动拾取修改IDE中的代码(例如eclipse).
在这种情况下,你们推荐什么作为最好的maven配置和/或dev工作流程?理想情况下,任何模块的更改都不需要完全重建项目.
我使用的是类似的结构,但差别很小.顶级目录有war和ear,然后它们包含特定的pom.xml.我使用Eclipse进行调试,我能够"大部分时间"进行热部署,而且我没有使用Eclipse插件,我知道这是你想要的.
.
|-- pom.xml
|-- README.md
|-- my-ear
| |-- devpid
| |-- pom.xml
| `-- src
| `-- main
| `-- application
| `-- META-INF
`-- my-war
|-- build
| `-- classes
| |-- main
| | |-- java
| | `-- webapp
| `-- test
| `-- java
|-- pom.xml
`-- src
|-- main
| |-- java
| | `-- com
| `-- webapp
| |-- css
| |-- favicon.ico
| |-- index.html
| |-- js
| |-- test.html
| `-- WEB-INF
`-- test
`-- java
Run Code Online (Sandbox Code Playgroud)
在maven ear/pom.xml中,将xArgs添加到appengine插件以便在调试模式下运行.
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>${appengine.target.version}</version>
<configuration>
<jvmFlags>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n</jvmFlag>
</jvmFlags>
<disableUpdateCheck>true</disableUpdateCheck>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)注意suspend = n.
mvn appengine:devserver > ~/.logs/.appengine.devserver.logs & echo $! > devpid
让我们称这个终端1.tail -f ~/.logs/.appengine.devserver.logs | sed 's/INFO/^[[0;34m&^[[0m/g;s/ERROR/^[[0;31m&^[[0m/g;s/WARN\|WARNING/^[[0;35m&^[[0m/g;s/SEVERE\|FATAL/^[[0;31;47m&^[[0m/g'
上面是一个难以输入的命令.^ [的每个实例实际上是Ctrl + V Esc - 值得输入一次的努力.但这当然是主观的,取决于你.在Eclipse中,在Remote Java Application下为项目创建调试配置文件 - 选择war项目和套接字附加选项.这个步骤可以在互联网上的很多地方找到,但这里仍然是一个图像
打开另一个终端,war目录中的Terminal 2并保持打开状态,以便mvn compile install
在需要时运行.
mvn compile install
从终端2 运行.Devserver将自动检测.mvn compile install
从外部运行.给出Windows列表(Eclipse,终端1和终端2)的原因只是为了表明Alt + Tab实际上比eclipse中的Shift + F7更快.这是主观的,当然由你决定.
归档时间: |
|
查看次数: |
1022 次 |
最近记录: |