繁体   English   中英

如何使用gradle在Grails 3插件中打包依赖项?

[英]How to package dependencies in a Grails 3 plugin using gradle?

我很难生成带有依赖项的Grails 3.2.7插件。

这可以工作并创建一个包含所有依赖项的JAR:

gradle clean build

..但不是这个; JAR没有依赖项,只是插件项目文件:

gradle publishToMavenLocal

我的gradle文件,我知道有些东西缺失了,根据文档,我的理解是没有本地功能可以做到这一点。

buildscript {
    ext {
        grailsVersion = project.grailsVersion
    }
    repositories {
        mavenLocal()
        maven { url "https://repo.grails.org/grails/core" }
        jcenter()
    }
    dependencies {
        classpath "org.grails:grails-gradle-plugin:$grailsVersion"
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1"
    }
}

plugins {
    id "io.spring.dependency-management" version "0.5.2.RELEASE"
    id "com.jfrog.bintray" version "1.2"
}

version "3.1-SNAPSHOT"
group "mygroup"


apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: "org.springframework.boot"
apply plugin: "com.jfrog.artifactory"
apply plugin: "org.grails.grails-plugin"
apply plugin: "org.grails.grails-gsp"
apply plugin: 'maven-publish'


ext {
    grailsVersion = project.grailsVersion
    gradleWrapperVersion = project.gradleWrapperVersion
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

idea {
    module {
        downloadSources = true
    }
}

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://repo.grails.org/grails/core" }
}

dependencyManagement {
    imports {
        mavenBom "org.grails:grails-bom:$grailsVersion"
    }
    applyMavenExclusions false
}

dependencies {
    provided 'org.springframework.boot:spring-boot-starter-logging'
    provided "org.springframework.boot:spring-boot-starter-actuator"
    provided "org.springframework.boot:spring-boot-autoconfigure"
    provided "org.springframework.boot:spring-boot-starter-tomcat"

    provided "org.grails:grails-web-boot"
    provided "org.grails:grails-dependencies"
    provided 'javax.servlet:javax.servlet-api:3.1.0'

    compile "org.grails:grails-plugin-testing"
    testCompile "com.fiftyonred:mock-jedis:0.4.0"

    console "org.grails:grails-console"
    compile "redis.clients:jedis:2.5.2"
}

task wrapper(type: Wrapper) {
    gradleVersion = gradleWrapperVersion
}


artifactory {
    contextUrl = 'http://myrepo/'

}

task sourceJar(type: Jar) {
    from sourceSets.main.allJava
}

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

问题源于出版部分:

当我将其更改为:

task jarWithPlainPom(type: Jar) {
    from sourceSets.main.output
    from configurations.runtime
}

publishing {
    publications {
        mavenJava(MavenPublication) {

            artifact jarWithPlainPom
        }
    }
}

它包含大多数所需的依赖项,但是在导入插件时POM未更新且项目失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM