2015-10-30 43 views
5

沒有Gradle War Plugin,bootRepackage任務取決於jar任務,但是使用Gradle War Plugin,它取決於war任務。如何使bootrepackage取決於jar不使用戰爭時使用Gradle War Plugin

即使我使用Gradle War Plugin,我如何將其更改爲依賴jar任務?

UPDATE:

我使用war任務創建一個WAR文件,包括被部署到一個文檔服務器的文件,我想用bootRepackage d jar文件提供服務。我的war任務取決於asciidoctor任務,這項任務取決於test任務(我正在使用Spring REST Docs),但我不想在使用bootRepackage任務時運行asciidoctor任務或test任務。

我解決我的問題有以下設置:

ext { 
    mainClassName = 'com.izeye.throwaway.Application' 
} 

task myBootRepackage(type: BootRepackage, dependsOn: jar) { 
} 

,但我不知道這是一個很好的做法。

這是具有上述配置的樣本項目:

https://github.com/izeye/spring-boot-throwaway-branches/tree/war

+0

我不是很確定,你想通過這個實現什麼,但可能是你應該嘗試創建一些Jar類型的自定義任務(或者可能只傳遞'jar')並將該插件配置爲'bootRepackage { withJarTask = customJarTask }'由於此參考http://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-gradle-plugin.html#build-tool-plugins -gradle-repackage-configuration – Stanislav

+0

@Stanislav感謝您的評論。我更新了我的問題。 –

回答

5

您應該已經能夠做到這一點:

bootRepackage { 
    withJarTask jar 
} 

這枚正確導致jar任務的jar重新包裝它不會消除對戰爭任務的依賴。這是this Spring Boot issue的另一個症狀。

在解決此問題之前,您已採取的方法 - 聲明您自己的BootRepackage任務並手動配置它所依賴的任務 - 是您的最佳選擇。

相關問題