我在eclipse中有一个项目,一个带有appengine sdk的java应用程序和maven作为我的构建器。
在我启动干净安装之前,.class文件不会刷新,因此我在代码中执行的每项更改都必须运行:
然后尝试启动我的应用。
请帮帮我,真烦人。感谢
答案 0 :(得分:1)
您可能正在寻找热门部署功能。在使用webapp工作时,在大多数情况下仅仅编译java类是不够的 - 通常你必须创建一个war包,而且几乎总是你必须将新代码重新部署到app服务器。
mvn package 应该足以创造战争。只要不删除或重命名任何文件,就不需要运行 mvn clean 。这会让事情变得更快。
要实现热部署(即在Web引擎开发服务器上即时获取新代码),您需要做一些额外的工作。确保使用Google Plugin for Eclipse - 您可以将其与maven一起使用。该插件至少应该处理静态文件的热部署。使用Eclipse在调试模式下运行应用程序有点帮助,并且它能够动态替换方法的主体。
查找此question的更多信息答案。
答案 1 :(得分:1)
目前还不清楚究竟究竟发生了什么以及为什么会这样。为了解决这个问题,我们需要看到pom.xml和"树"命令输出显示相关的文件夹和文件。然后我们可以将它与相关maven插件应该做的事情进行比较,并从那里开始工作。
目前,这是一个相当陈旧的问题,其中不清楚究竟发生了什么,而且OP很久以前就消失了。如果今天发生此问题,最好的办法是发布到App Engine Public Issue Tracker,但如果问题不在App Engine SDK(或相关的maven插件)中,则可能不合适第三方maven插件行为不正常(例如maven-compiler-plugin)。但是,在进行更深入的分析之前,很难提前知道。
答案 2 :(得分:1)
我知道这是一篇非常古老的帖子,但我最近在使用STS和Websphere应用服务器时遇到了这个问题。希望这有助于任何人碰到这个古老的遗物。
查看Eclipse市场中的“FileSync”插件。它允许将工作区文件与外部目录同步(想想您的应用程序服务器)。安装“FileSync”后,您可以将其配置为将工作区文件“直接复制/粘贴”到应用程序服务器的爆炸.war目录中。为了让你的文件以符合j2ee标准的格式复制,可能需要花一些时间来玩,但它对我来说就像一个魅力。一旦配置完成,你基本上只需更新文件,保存它们,你的应用程序就可以开始了!
答案 3 :(得分:0)
实际上只使用Eclipse m2e插件轻松重新加载App Engine应用程序,并且不需要GPE插件或任何其他特殊连接器:
1)使用提供的Google原型之一或其他自定义原型,像平常一样在Eclipse中创建App Engine应用程序作为Maven项目。
2)配置项目,并在项目的根目录中使用mvn clean install
进行初始构建,以创建初始target/<artifact>-<version>
WAR目录。
3)在项目根目录中使用mvn appengine:devserver
启动开发服务器,并确保您可以在浏览器中查看本地提供的应用程序。让开发服务器继续运行。
4)在Eclipse中,确保选中Project -> Build automatically
。
现在,每当您保存.java
文件时,Eclipse将自动在.class
下构建相应的target/<artifact>-<version>/WEB-INF/classes
文件。在Maven项目中,此目录设置为.classpath
中类的输出目录。开发服务器将检测文件更改并对应用程序进行热重新加载,以便在浏览器中刷新应用程序时立即显示更改。