gradle打包java項目


轉載地址:http://www.gfzj.us/series/gradle/2014/12/12/gradle%E5%B0%8F%E7%B3%BB%E5%88%97(4)--gradle%E6%89%93%E5%8C%85java%E9%A1%B9%E7%9B%AE.html

 

以gradle小系列所舉例子為示例,在此處介紹兩種gradle發布java項目的方法:

fat jar方式

該種方法將工程所依賴的jar包等資源都會打到一個可執行jar包中,生成的jar包很大。

在GradleTest項目中,我們對SubPro1進行打包,所以需要修改SubPro1下的build.gradle文件:

jar {
	from { 
		configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } 
	}
	manifest {
		attributes 'Main-Class': 'hello.HelloWorld'
	}
}

dependencies {
	compile project(":SubPro2")
}

上述配置添加了jar task,from是對SubPro1的依賴進行打包,manifest 則生成對main的配置信息,即包hello下的HelloWorld.java是工程入口

在項目GradleTest的根目錄下執行命令gradle build,即可生成jar包

使用gradle的application插件

fat jar並不總是一個合適的選擇,比如需要依賴跟jar分離、軟件能在*nix和windows下都有啟動的script等。 那么使用gradle的application插件就可以做到了。

在GradleTest項目中,我們對SubPro1的build.gradle進行如下修改:刪除jar task;添加application插件; 配置main class(設置mainClassName的值即可)。修改結果如下:

apply plugin: 'application'

mainClassName = 'hello.HelloWorld'

dependencies {
	compile project(":SubPro2")
}

Application插件提供5個tasks實現項目的發布,分別是

run、startScript、installApp、distZip、distTar

假設使用distZip,在GradleTest目錄下運行命令gradle distZip,在SubPro1的build/distributions中,可以看到zip文件,其中包含了bin和lib文件夾,bin下有軟件啟動腳本,lib則是軟件jar包和其所有依賴。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM