2015年1月25日

Gradle(8) 最後一哩路-發佈版本

通常在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'
}

沒有留言:

張貼留言