我在Spring启动应用程序中使用嵌入式tomcat。 我打算使用下面的目标:
clean spring-boot:run
并且运行时没有错误。我使用eclipse关机按钮将其关闭。 第二次我尝试运行它我得到了这个:
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project cpanel: Failed to clean project: Failed to delete XXXXXXXXX\target\classes\hibernate\security\user\User.hbm.xml -> [Help 1]
它的sims tomcat无法下次删除目标。什么是我的tomcat错了?
我做错了吗?
我在application.yml中的服务器配置:
server:
compression:
enabled: true
port: 8080
servlet-path: /rest
和我的tomcat依赖:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
答案 0 :(得分:2)
要解决此问题,请更改tomcat maven plugin
并将fork
添加到false
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>false</fork>
</configuration>
</plugin>
答案 1 :(得分:1)
我写了这个bat脚本命令:
FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| findstr :8080.*LISTENING') DO TaskKill.exe /PID %%P /F
pause
并将其保存在killport.bat
中,然后使用maven-antrun-plugin调用它:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<target>
<exec executable="cmd.exe" spawn="true">
<arg value="/c" />
<arg value="F:\Java\Projects\killport.bat" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
答案 2 :(得分:0)
只需在pom.xml文件的spring-boot-maven-plugin中添加以下标记
<configuration>
<fork>false</fork>
</configuration>
这是完整的示例:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>false</fork>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>