java – 在Intellij中,为什么我要在本地运行Google App Engine时清理并构建战争以查看更改?

前端之家收集整理的这篇文章主要介绍了java – 在Intellij中,为什么我要在本地运行Google App Engine时清理并构建战争以查看更改?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用谷歌应用程序引擎来构建战争,我注意到每当我进行本地更改时,我在本地运行时都不会应用它们.我已经发现,看到我所做的更改的唯一方法是运行mvn clean,然后make,然后构建工件,然后部署.这是显示我的配置的屏幕截图:

如果我错过了上述任何步骤,重新启动服务器不会显示我所做的任何更改.我之前使用intellij制作了许多非谷歌应用引擎的webapps,我通常不必这样做.我该如何避免所有这些步骤?它们大大增加了重启服务器所需的时间.

如果它有帮助,这是我的pom.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <packaging>war</packaging>
  7. <version>1.0-SNAPSHOT</version>
  8.  
  9. <groupId>com.myapp</groupId>
  10. <artifactId>myapp</artifactId>
  11.  
  12. <properties>
  13. <appengine.app.version>1</appengine.app.version>
  14. <appengine.target.version>1.8.6</appengine.target.version>
  15. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  16. </properties>
  17.  
  18. <dependencies>
  19. <!-- Compile/runtime dependencies -->
  20. <dependency>
  21. <groupId>com.google.appengine</groupId>
  22. <artifactId>appengine-api-1.0-sdk</artifactId>
  23. <version>${appengine.target.version}</version>
  24. </dependency>
  25. <dependency>
  26. <groupId>javax.servlet</groupId>
  27. <artifactId>servlet-api</artifactId>
  28. <version>2.5</version>
  29. <scope>provided</scope>
  30. </dependency>
  31. <dependency>
  32. <groupId>jstl</groupId>
  33. <artifactId>jstl</artifactId>
  34. <version>1.2</version>
  35. </dependency>
  36. <dependency>
  37. <groupId>net.sourceforge.stripes</groupId>
  38. <artifactId>stripes</artifactId>
  39. <version>1.5.7</version>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.slf4j</groupId>
  43. <artifactId>slf4j-api</artifactId>
  44. <version>1.7.5</version>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.slf4j</groupId>
  48. <artifactId>slf4j-jdk14</artifactId>
  49. <version>1.7.5</version>
  50. </dependency>
  51.  
  52.  
  53.  
  54.  
  55. <dependency>
  56. <groupId>com.google.appengine</groupId>
  57. <artifactId>appengine-testing</artifactId>
  58. <version>${appengine.target.version}</version>
  59. <scope>test</scope>
  60. </dependency>
  61. <dependency>
  62. <groupId>com.google.appengine</groupId>
  63. <artifactId>appengine-api-stubs</artifactId>
  64. <version>${appengine.target.version}</version>
  65. <scope>test</scope>
  66. </dependency>
  67. </dependencies>
  68.  
  69. <build>
  70. <plugins>
  71. <plugin>
  72. <groupId>org.apache.maven.plugins</groupId>
  73. <version>2.5.1</version>
  74. <artifactId>maven-compiler-plugin</artifactId>
  75. <configuration>
  76. <source>1.6</source>
  77. <target>1.6</target>
  78. </configuration>
  79. </plugin>
  80.  
  81. <plugin>
  82. <groupId>org.apache.maven.plugins</groupId>
  83. <artifactId>maven-war-plugin</artifactId>
  84. <version>2.3</version>
  85. <configuration>
  86. <archiveClasses>true</archiveClasses>
  87. <webResources>
  88. <!-- in order to interpolate version from pom into appengine-web.xml -->
  89. <resource>
  90. <directory>${basedir}/src/main/webapp/WEB-INF</directory>
  91. <filtering>true</filtering>
  92. <targetPath>WEB-INF</targetPath>
  93. </resource>
  94. <resource>
  95. <directory>${basedir}/src/main/generated</directory>
  96. <targetPath>src/main/generated</targetPath>
  97. </resource>
  98. <resource>
  99. <directory>${basedir}/src/main/scripts/img</directory>
  100. <targetPath>src/main/scripts/img</targetPath>
  101. </resource>
  102. </webResources>
  103. </configuration>
  104. </plugin>
  105.  
  106. <plugin>
  107. <groupId>com.google.appengine</groupId>
  108. <artifactId>appengine-maven-plugin</artifactId>
  109. <version>${appengine.target.version}</version>
  110. </plugin>
  111. </plugins>
  112. </build>
  113.  
  114. </project>

解决方法

如果你正在使用.war artefact,是的,你必须清理并制作,因为它实际上是创建war文件然后部署并且为了更新war文件中的代码,IntelliJ必须重新创建整个war文件,这是通过清理(删除)完成并再次进行.

您应该考虑使用.war爆炸的artefact,以便IntelliJ可以更新所需的类/ jar文件,而无需重新创建整个war文件.但是我在你的截图中看到你已经在使用war爆炸的人工制品,也许问题是你正在尝试更新正在使用的jar文件.

猜你在找的Java相关文章