將 Gradle 項目轉換成 Maven 須要的POM

引子

Gradle是一個很好用的編譯工具。稍微有點不太方便的地方在於,有的開發環境只提供的Maven。因此有時候,咱們須要利用 Gradle 生成 Maven 須要 POM.xml 文件。下面的方法能夠把gradle轉成maven項目,前提gradle項目目錄結構保持跟maven同樣的約定,即/src/main/java這一套。html

生成 pom.xml

方式一:java

一、打開 build.gradle 文件,在build.gradle中增長如下內容(group,version可自行修改,artifactId默認爲目錄名稱)mysql

apply plugin: 'java' apply plugin: 'maven' group = 'com.angei' version = '1.0.0'
sourceCompatibility = 1.8

plugins的格式能夠以下:web

plugins {
    id 'java'
    id 'maven'
}

group = 'com.angei'
version = '1.0.0'
sourceCompatibility = 1.8

二、在終端下執行redis

gradle install

成功後,會在 build目錄下的 poms 文件夾下生成 pom-default.xml,將其更名爲 pom.xml 拷貝到項目的根目錄下便可。spring

 

生成的pom-default.xml以下:sql

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 4   <modelVersion>4.0.0</modelVersion>
 5   <groupId>com.angei</groupId>
 6   <artifactId>gradle-first</artifactId>
 7   <version>1.0.0</version>
 8   <dependencies>
 9     <dependency>
10       <groupId>junit</groupId>
11       <artifactId>junit</artifactId>
12       <version>4.12</version>
13       <scope>test</scope>
14     </dependency>
15   </dependencies>
16 </project>

 

方式二:apache

一、在build.gradle的文件中添加着色部分的內容:json

 1 buildscript {
 2     repositories {
 3         mavenCentral()
 4     }
 5     dependencies {
 6         classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.3.RELEASE")
 7     }
 8 }
 9  
10 apply plugin: 'java'
11 apply plugin: 'jacoco'
12 apply plugin: 'spring-boot'
13 apply plugin: 'maven'
14  
15 sourceCompatibility = 1.8
16 compileJava.options.encoding = 'UTF-8'
17  
18  
19 group = 'com.101tec'
20 // Options for naming the JAR file
21 archivesBaseName = 'trackr-backend'
22 version = '1.0'
23 if(project.hasProperty('teamcity')) {
24     version += '-build-' + project.teamcity['build.number']
25 } else {
26     version += '-localbuild'
27 }
28  
29  
30 sourceCompatibility = 1.8
31  
32 repositories {
33     mavenCentral()
34 }
35  
36 springBoot {
37     executable = true
38 }
39  
40 dependencies {
41     compile "org.springframework.boot:spring-boot-starter-data-rest"
42     compile "org.springframework.boot:spring-boot-starter-data-jpa"
43     compile "org.springframework.boot:spring-boot-starter-mail"
44     compile "org.springframework.boot:spring-boot-starter-integration"
45     compile "org.springframework.boot:spring-boot-starter-security"
46  
47     // not included in boot
48     compile "org.springframework.integration:spring-integration-mail:4.2.5.RELEASE"
49     compile "org.springframework.security.oauth:spring-security-oauth2:2.0.11.RELEASE"
50  
51     compile "com.h2database:h2"
52     compile "postgresql:postgresql:9.1-901.jdbc4"
53     compile "org.flywaydb:flyway-core"
54  
55     compile("org.xhtmlrenderer:flying-saucer-pdf-itext5:9.0.6")
56     compile("org.thymeleaf:thymeleaf:2.1.3.RELEASE")
57  
58     compile "org.projectlombok:lombok:1.12.4"
59  
60     compile "org.glassfish:javax.json:1.0"
61     
62  
63     testCompile "org.springframework.boot:spring-boot-starter-test"
64     testCompile("org.echocat.jomon:testing:1.4.3") {
65         exclude group: "org.mockito"
66     }
67     testCompile "org.mockito:mockito-core:1.9.5"
68     testCompile "com.jayway.jsonpath:json-path"
69     testCompile "org.apache.httpcomponents:httpclient"
70 }
71  
72  
73 task wrapper(type: Wrapper) {
74     gradleVersion = '2.2'
75 }
76  
77 task createPom << { 78  pom {
79  project {
80             groupId 'com.angei'
81             artifactId 'gradle-first'
82             version '1.0.0'
83 }
84     }.writeTo("$buildDir/pom.xml") 85 }

其中這個createPom的task改爲任何你本身喜歡的名字,如createPom、mavenPom、testPom等,而後只須要執行。app

二、在終端執行:

gradle createPom

執行成功如圖

 

 生成的Pom.xml內容以下:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.angei</groupId>
  <artifactId>gradle-first</artifactId>
  <version>1.0.0</version>
  <dependencies>
    <dependency>
      <groupId>com.feidee.laoyeye</groupId>
      <artifactId>feidee-laoyeye-service-dto</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.feidee.finance</groupId>
      <artifactId>finance-lib-javaweb</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-cache</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-aop</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-security</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-freemarker</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.kafka</groupId>
      <artifactId>kafka-clients</artifactId>
      <version>1.1.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.kafka</groupId>
      <artifactId>spring-kafka</artifactId>
      <version>1.3.7.RELEASE</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>kafka-clients</artifactId>
          <groupId>org.apache.kafka</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.13.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
相關文章
相關標籤/搜索