给定一个构建战争的(版本化)Gradle 项目,我想使用 IntelliJ IDEA 将其部署到本地 tomcat。
目前这工作正常,除了由Gradle IntelliJ 插件生成的 IntelliJ 工件的名称包括我的项目的版本号。这意味着在每次发布时我都需要更新 IntelliJ 中的 Tomcat 运行配置(更糟糕的是,每次我切换分支时,例如在 1.2.x 中进行错误修复和在 1.x 中进行新功能时……)。
似乎我需要在“运行 > 编辑配置... > Tomcat > 部署选项卡”中指定工件名称,所以我目前正在寻找一种方法来从工件名称中删除版本号。然而,能够说“使用当前项目中的任何工件”(例如使用正则表达式)也很好。
到目前为止,我试图忽略由 Gradle IntelliJ 插件生成的 IntelliJ 工件,而是在“项目设置 > 工件”中配置我自己的工件。这也“有效”,但由于我找不到一种方法来告诉 IntelliJ 将“模块 X 的所有运行时依赖项”放在 WEB-INF/lib 中,因此我不得不向它提供这些依赖项的列表。所以现在,每次我的项目版本更改时都需要更新我的配置,而不是每次依赖项更改时都需要更新我的配置。
注意:我使用的是 IntelliJ 中捆绑的 Gradle 插件,而不是IDEA Gradle 插件。
您可以考虑重命名战争工件以从中排除版本。为了使这个构建逻辑活跃,只有在IntelliJ IDEA的,你可以通过检查idea.sync.active
(和idea.active
如果你是乳宁从IDE一个摇篮任务)在构建脚本属性(见https://stackoverflow.com/a/63411337/2000323):
war {
if (System.getProperty('idea.active')) {
archiveFileName = 'myname.war'
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句