通常在Java專案會把程式打包為JAR、ZIP檔或是其他檔案,在Gradle中打包程式任務為build<configurationName>且上傳的任務為upload<configurationName>。我們定義
(1) 版本庫上傳
- jar檔上傳
apply plugin: 'java'
archivesBaseName = 'sample'
version = '1.0'
repositories {
flatDir {
name 'uploadRep'
dirs 'upload'
}
}
uploadArchives {
repositories {
//檔案上傳的設定環境為uploadRep
add project.repositories.uploadRep
//額外jar上傳目的檔
flatDir {
dirs 'C:\\libs'
}
}
}
- Maven版本上傳
apply plugin: 'java'
apply plugin: 'maven'
archivesBaseName = 'sample'
group = ‘com.sample’
version = '1.0'
uploadArchives {
repositories {
mavenDeployer {
repository(‘C:\\libs’)
}
}
(2)打包檔案
在通常我們開發網頁程式,會將JAVA專案打包成Web application Archive (WAR) or Enterprise Archive (EAR)。如果對Web開發不了解請您參考Gossip@openhome。
Gradle網頁架構預設
- src/main/webapp/WEB-INF 環境配置檔(web.xml)
- src/main/resources 資源架構
- src/main/ class架構
- 打包WAR檔
Gradle任務War方法用來將Java專案打包成war檔,
war屬性或方法 | 說明 |
---|---|
webInf | 用來定義WEB-INF的內容, 範例: webInf { //將resources裡的文件複製到WEB-INF from 'src/main/resources’ } |
classpath | 如果為jar或是zip檔會自動複製到WEB-INF/lib中,其他檔案就複製到WEB-INF/classes 範例: classpath sourceSets.main.runtimeClasspath classpath fileTree('libs') |
webXml | 用來定義web.xml |
使用WAR pluging的預設環境來打包war檔,會比較開發。
apply plugin: 'war'
version = '1.0'
repositories {
mavenCentral()
}
configurations {
extraLibs
}
dependencies {
providedCompile 'javax.servlet:servlet-api:3.0'
providedRuntime 'webcontainer:logging:1.0'
extraLibs 'sample:lib:2.1'
}
war {
classpath configuration.extraLibs
webXml = file('src/main/webXml/web-dev.xml')
baseName = 'gradle-webapp'
}
留言
張貼留言