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"
}
}
}
當應用Java和maven-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.xml
的maven
配置將轉換爲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'
}