Gradle部署


Gradle提供了幾種部署構建工件(artifacts)儲存庫的方法。將工件的簽名部署到Maven儲存庫時,還需要簽署已發布的POM檔案。

使用Maven外掛發布

Gradle預設提供maven-publish外掛。 它用於發布gradle指令碼。 看看下面的程式碼。

apply plugin: 'java'
apply plugin: 'maven-publish'

publishing {
   publications {
      mavenJava(MavenPublication) {
         from components.java
      }
   }

   repositories {
      maven {
         url "$buildDir/repo"
      }
   }
}

當應用Javamaven-publish外掛時,有幾個發布選項。 看看下面的程式碼,它會將專案部署到遠端倉庫。

apply plugin: 'groovy'
apply plugin: 'maven-publish'

group 'workshop'
version = '1.0.0'

publishing {
   publications {
      mavenJava(MavenPublication) { 
         from components.java 
      }
   }

   repositories {
      maven {
          default credentials for a nexus repository manager
         credentials {
            username 'admin'
            password 'mypasswd'
         }
         // 發布maven儲存庫的url
         url "http://localhost:8080/nexus/content/repositories/releases/"
      }
   }
}

將專案從Maven轉換為Gradle

有一個特殊的命令用於將Apache Maven pom.xml檔案轉換為Gradle構建檔案,如果此任務已經知道使用的所有Maven外掛。

在本節中,以下pom.xmlmaven組態將轉換為Gradle專案。建立一個D:/pom.xml並使用下面的程式碼。

<project xmlns = "http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">

   <modelVersion>4.0.0</modelVersion>
   <groupId>com.example.app</groupId>
   <artifactId>example-app</artifactId>
   <packaging>jar</packaging>

   <version>1.0.0-SNAPSHOT</version>

   <dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>

         <version>4.11</version>
         <scope>test</scope>
      </dependency>
   </dependencies>

</project>

可以命令列上使用以下命令,然後生成以下Gradle組態內容。

D:/> gradle init --type pom
Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
:wrapper
:init
Maven to Gradle conversion is an incubating feature.

BUILD SUCCESSFUL

Total time: 11.542 secs

init任務依賴於包裝器任務,因此它建立了一個Gradle包裝器。
生成的build.gradle檔案類似於以下內容。

apply plugin: 'java'
apply plugin: 'maven'

group = 'com.yiibai.app'
version = '1.0.0-SNAPSHOT'

description = """"""

sourceCompatibility = 1.5
targetCompatibility = 1.5



repositories {

     maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
    testCompile group: 'junit', name: 'junit', version:'4.11'
}