gradle 打war 包
阿新 • • 發佈:2019-01-09
build.gradle檔案
apply plugin: 'war' webAppDirName = 'WebRoot' //設定 WebApp 根目錄 version = '' buildDir = 'target' //war 輸出路徑 sourceCompatibility='1.6' //設定jdk 版本 war{ baseName ="PCMS" //war名稱 } //定義目錄結構 sourceSets { main { java { srcDirs = ['src/cmes/java'] } resources { srcDirs = ['src/cmes/resources','src/plat/resources'] } } } // 設定 maven 庫地址 repositories { maven { url 'http://maven.oschina.net/content/groups/public/' } } //載入本地依賴 dependencies { providedCompile fileTree(dir: System.getenv("CATALINA_HOME")+'/lib', include: '*.jar') providedCompile fileTree(dir: 'WebRoot/WEB-INF/lib', include: '*.jar') //依賴的jar cargo.jar cargo('org.codehaus.cargo:cargo-ant:1.3.1') { exclude group: 'xml-apis', module: 'xml-apis' } cargo 'xml-apis:xml-apis:2.0.2' } //設定編碼 tasks.withType(Compile) { options.encoding = "UTF-8" }
gradle.properties 設定
//支援中文檔案
systemProp.file.encoding=UTF-8
gradle 依賴管理:
//宣告外部屬性 ext.cargoGroup = 'org.codehaus.cargo' ext.cargoVersion = '1.3.1' dependencies { //使用對映宣告依賴 compile group: cargoGroup, name: 'cargo-core-uberjar',version: cargoVersion //用快捷方式來宣告,引用了前面定義的外部屬性 cargo "$cargoGroup:cargo-ant:$cargoVersion" }
排除傳遞依賴
dependencies {
cargo('org.codehaus.cargo:cargo-ant:1.3.1') {
exclude group: 'xml-apis', module: 'xml-apis'
}
cargo 'xml-apis:xml-apis:2.0.2'
}
exclude屬性值和正常的依賴宣告不太一樣,你只需要宣告group和(或)module,Gradle不允許你只排除指定版本的依賴。
有時候倉庫中找不到專案依賴的傳遞依賴,這會導致構建失敗,Gradle允許你使用transitive屬性來排除所有的傳遞依賴:
dependencies { cargo('org.codehaus.cargo:cargo-ant:1.3.1') { transitive = false } // 選擇性的宣告一些需要的庫 }
動態版本宣告
果你想使用一個依賴的最新版本,你可以使用latest.integration,比如宣告 Cargo Ant tasks的最新版本,你可以這樣寫 org.codehaus.cargo:cargo-ant:latest-integration
,你也可以用一個+號來動態的宣告:
dependencies {
//依賴最新的1.x版本
cargo 'org.codehaus.cargo:cargo-ant:1.+'
}