Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在没有mvn干净安装的情况下,如何在代码更改后构建项目?_Java_Google App Engine_Maven - Fatal编程技术网

Java 在没有mvn干净安装的情况下,如何在代码更改后构建项目?

Java 在没有mvn干净安装的情况下,如何在代码更改后构建项目?,java,google-app-engine,maven,Java,Google App Engine,Maven,我在eclipse中有一个项目,这是一个java应用程序,appengine sdk和maven是我的构建器 .class文件在我启动clean install之前不会刷新,因此我在代码中所做的每一次更改都必须运行: mvn清洁安装 mvn eclipse:clean mvn eclipse:eclipse 然后尝试启动我的应用程序 请帮帮我,真烦人。谢谢您可能正在寻找热部署功能。当使用ha webapp时,在大多数情况下,仅仅编译一个java类是不够的——通常您必须创建一个war包,并且几

我在eclipse中有一个项目,这是一个java应用程序,appengine sdk和maven是我的构建器

.class文件在我启动clean install之前不会刷新,因此我在代码中所做的每一次更改都必须运行:

  • mvn清洁安装
  • mvn eclipse:clean
  • mvn eclipse:eclipse
然后尝试启动我的应用程序


请帮帮我,真烦人。谢谢

您可能正在寻找热部署功能。当使用ha webapp时,在大多数情况下,仅仅编译一个java类是不够的——通常您必须创建一个war包,并且几乎总是必须将新代码重新部署到应用服务器

mvn包应该足以创建战争。只要不删除或重命名任何文件,就不需要运行mvn clean。那会让事情变得更快

然而,要实现热部署(即在web引擎开发服务器上即时获取新代码),您需要做一些额外的工作。确保您使用-您可以将它与maven一起使用。插件至少应该负责静态文件的热部署。使用Eclipse在调试模式下运行应用程序会有所帮助,而且它能够动态地替换方法的主体


找到更多的信息来回答这个问题。

从问题中不清楚到底发生了什么以及为什么。要解决这个问题,我们需要查看pom.xml和显示相关文件夹和文件的“tree”命令输出。然后我们可以将其与相关的maven插件进行比较,并从那里开始工作


目前,这是一个相当古老的问题,不清楚到底发生了什么,OP很久以前就消失了。如果今天出现此问题,最好的做法是将其发布到,但如果问题不在App Engine SDK(或相关maven插件)中,而是来自第三方maven插件(例如),则这可能是不合适的。但是,在进行更深入的分析之前,很难提前知道。我知道这是一篇非常古老的文章,但我最近在使用STS和Websphere application server时遇到了这个问题。希望这有助于任何人遇到这一古老的遗迹的一个职位


看看Eclipse市场中的“FileSync”插件。它允许将您的工作区文件与外部目录同步(想想您的应用程序服务器)。安装“FileSync”后,可以将其配置为将工作区文件直接“复制/粘贴”到应用程序服务器的分解的.war目录。可能需要花点时间才能将文件复制成符合j2ee的格式,但对我来说,这很有吸引力。一旦配置好,您基本上只需更新文件,保存它们,您的应用程序就可以运行了

仅使用Eclipse m2e插件即可轻松实现应用引擎应用程序的热重新加载,并且不需要GPE插件或任何其他特殊连接器:

1) 使用提供的一个Google原型或另一个自定义原型,在Eclipse中将应用程序引擎应用程序创建为Maven项目,这与您通常所做的一样

2) 配置项目,并在项目根目录中使用
mvn clean install
进行初始构建,以创建初始
target/-
WAR目录

3) 使用项目根目录中的
mvn appengine:devserver
启动开发服务器,并确保您可以在浏览器中查看本地提供的应用程序。让开发服务器保持运行

4) 在Eclipse中,确保选中了
Project->buildautomatically


现在,每当保存
.java
文件时,Eclipse将自动在
target/-/WEB-INF/classes
下构建相应的
.class
文件。在Maven项目中,此目录被设置为
.classpath
中类的输出目录。开发服务器将检测到文件更改并对应用程序进行热重新加载,以便在浏览器中刷新应用程序时立即显示更改。

您是否尝试过运行
mvn compile
?我不清楚您是否因为不熟悉Maven而遇到问题,或者您的构建过程中是否存在需要运行
install
阶段的特殊情况。您使用哪一版本的Maven编译器插件?你使用哪个Maven版本?为什么在eclipse中使用mvn eclipse:eclipse而不是m2e插件?实际上我使用的是apache-maven-2.2.1安装。我将eclipse配置为maven插件使用此安装。我认为我的问题是pom构建得不好,我只能通过mvn安装,然后是mvn eclipse:eclipse来刷新部署中的代码。但是,保存java文件后,代码不会自动刷新吗?我实际上在使用eclipse插件,显然有一个pom指定了构建特性,ad mvn运行它。我尝试了相关文章中给出的解决方案……修改web_apengine.xml(手动),然后重新启动应用程序,但什么也没发生;我在应用程序中更改的代码不显示感谢您建议使用此插件!它解决了我的问题,在快速配置后,JPS文件现在自动更新到应用程序目录!我不再需要重新启动tomcat了!:)如果有人找不到配置FILESYNC的位置,请执行以下操作:右键单击Eclipse项目>属性>文件同步。