我想构建一个 WAR 文件(然后将其部署到 Tomcat)。因此,作为练习,我在 IDEA IntelliJ 中使用 Gradle 启动了一个新的 Spring Boot 项目。之后,我在build.gradle文件中应用了插件,就像这样apply plugin: 'war'
。
问题是当我尝试gradle war在终端中运行时,我没有得到 war 文件!只有这种情况发生的事情是,它会生成一个\build带有3个subsolders classes,resources和tmp,但没有战争这些。
我应该怎么做才能获得 WAR 文件?我看过这个视频,但是这个人使用 Maven 并且不做高级的东西并且得到了战争。我认为必须有一种方法来保持简单。
当我跑 gradle war --info
Run Code Online (Sandbox Code Playgroud)Initialized native services in: C:\Users\...\.gradle\native The client...
任务 :compileJava UP-TO-DATE 解决项目“deleteme”的全局依赖管理排除 [org.apache.tomcat:tomcat-annotations-api] 排除 [] 跳过任务 ':compileJava' 因为它是最新的。:compileJava (Thread[Task worker for ':',5,main]) 完成。耗时 0.753 秒。:processResources (Thread[Task worker for ':',5,main]) 启动。
任务 :processResources UP-TO-DATE 跳过任务“:processResources”,因为它是最新的。:processResources (Thread[Task worker for ':',5,main]) 完成。耗时 0.003 秒。:classes (Thread[Task worker for ':',5,main]) 开始。
任务 :classes UP-TO-DATE 跳过任务“:classes”,因为它没有任何操作。:classes (Thread[Task worker for ':',5,main]) 完成。花了 0.0 秒。:war (Thread[Task worker for ':',5,main]) 开始。
任务 :war SKIPPED 跳过任务 ':war' 作为 task onlyIf 为假。:war (Thread[Task worker for ':',5,main]) 完成。花了 0.0 秒。
M.R*_*uti 17
我猜你已经将 spring boot gradle 插件应用到你的项目中,除了 war 插件?那么这种行为是正常的,因为 Spring Boot 插件将禁用jar和war任务并将它们替换为bootWar和bootJar tasks。
应用了 spring boot 和 war 插件:
./gradlew war
15:35:09: Executing task 'war'...
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :war SKIPPED
BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 up-to-date
15:35:10: Task execution finished 'war'.
Run Code Online (Sandbox Code Playgroud)
注意SKIPPED消息
$ ./gradlew bootWar
15:36:35: Executing task 'bootWar'...
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :bootWar
BUILD SUCCESSFUL in 1s
3 actionable tasks: 1 executed, 2 up-to-date
15:36:37: Task execution finished 'bootWar'.
Run Code Online (Sandbox Code Playgroud)
然后您将在build/libs下获得预期的war文件。
您仍然可以按照此处的说明重新启用标准 jar/war 任务:https : //docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#packaging-executable-wars-deployable (如果您需要生成普通档案而不是可执行档案)
关于Tomcat问题:安装Tomcat 8.5。
小智 7
请阅读: https: //docs.gradle.org/current/userguide/war_plugin.html
如果将 Gradle 与 IntelliJ 结合使用,请转至 build.gradle(对于 Kotlin 则转至 build.gradle.kts)并添加
ID“战争”
(要不就
战争
对于 Kotlin )在插件下
重新加载 Gradle 项目,然后在 Intellij 终端上使用 gradlew bootWar。
添加 --info 或 --stackTrace 进行调试
| 归档时间: |
|
| 查看次数: |
34419 次 |
| 最近记录: |