groovy 旧版的`maven`插件已在Gradle 7中删除,请改用中的`maven-publish`插件

9o685dep  于 2023-04-19  发布在  Maven
关注(0)|答案(2)|浏览(300)

我尝试使用gradle运行项目,但出现以下错误。

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\ISEP\ODSOFT\Projects\odsoft-21-22-nmb-g311\odsoft-21-22-nmb-g311\project\build.gradle' line: 4

* What went wrong:
An exception occurred applying plugin request [id: 'fr.putnami.gwt', version: '0.4.0']
> Failed to apply plugin class 'org.gradle.api.plugins.MavenPlugin'.
   > The legacy `maven` plugin was removed in Gradle 7. Please use the `maven-publish` plugin instead. See https://docs.gradle.org/7.2/userguide/publishing_maven.html#publishing_maven for details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

我用来运行项目的命令是gradle gwtRun
我离开下面我gradle bulid文件

plugins {
    id "fr.putnami.gwt" version "0.4.0"
    id "maven-publish"
}

apply plugin: 'war'
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'jacoco'
apply plugin: 'maven-publish'

//Java version compatibility to use when compiling Java source.
sourceCompatibility = 1.8
//Java version to generate classes for.
targetCompatibility = 1.8
//Script Version
version = '1.0'
 
repositories { 
    mavenCentral() 
}

dependencies {
    //testCompile 'junit:junit:4.12'
    //testCompile group: 'junit', name: 'junit', version: '4.12'
    testImplementation  group: 'junit', name: 'junit', version: '4.12'

    testImplementation 'org.easymock:easymock:2.5.2'
    testImplementation 'com.google.gwt:gwt-dev:2.8.1'
    implementation 'net.sourceforge.plantuml:plantuml:8001'
    //compile 'net.sourceforge.plantuml:plantuml:8001'

}

javadoc {
    options.addStringOption("sourcepath", "")
}

// If we woant to use the default ant build inside gradle
// ant.importBuild "build.xml"

putnami{

    module 'pt.isep.cms.Showcase'
    //module 'com.google.gwt.sample.contacts.Contacts'
    
    /** add gwt nature on eclipse project. require apply plugin: 'eclipse' to work. default : false*/
    googlePluginEclipse = true
    
    gwtVersion='2.8.1'
    
    compile {
        sourceLevel = '1.8'
    }
    
    jetty {
        /** enable debugging. */
        debugJava = true
        /** debug port to listen. */
        debugPort = 8000
        /** wait for debugger attachment. */
        debugSuspend = false
    }
}

// Jacoco
jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
    }
}

// This task generates the coverage report for the integration tests.
// Notice that it only includes data about the server code sice Jaccoco is not able to get data about cliente code that is transpiled to javascript
task jacocoIntegrationReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) {
    sourceSets sourceSets.main
    
    executionData = files("${buildDir}/jacoco/integrationTest.exec")
    
    reports {
        html.enabled = true
        xml.enabled = false
        csv.enabled = false
    }
}

// Integration Tests
task integrationTest(type: Test) {
    filter { 
        //all GWT unit tests, by naming convention
        includeTestsMatching "*GWTTest*"
    }    
    jacoco { 
            append = true
            enabled = true
            //classDumpFile = file("${buildDir}/jacoco/classpathdumps")
            
            excludes = ["com/steadystate/**"] 
    }
    // These Properties are required to run gwt integration tests
    systemProperties['gwt.args'] = "-devMode -logLevel WARN -war www-test"
}

tasks.withType(Test) {
    reports.html.destination = file("${reporting.baseDir}/${name}")
}

// Unit Tests
test { 
    filter { 
        //all JRE unit tests, by naming convention
        includeTestsMatching "*JRETest*"
    }
    jacoco { 
            append = true
            enabled = true
        //classDumpFile = file("${buildDir}/jacoco/classpathdumps")
    }   
}

据我所知,插件maven在gradle的版本7中被删除了。这句话是正确的吗?或者是被删除的putnami插件?
我该怎么做才能让它工作?

sdnqo3pr

sdnqo3pr1#

插件fr.putnami.gwt在内部应用maven插件:
https://github.com/Putnami/putnami-gradle-plugin/blob/master/src/main/java/fr/putnami/gwt/gradle/PwtLibPlugin.java#L47
因此,fr.putnami.gwt与Gradle 7不兼容。
正如repo中的README所述:
它的一个分支仍然受支持,并且有一个更新的版本可在https://github.com/esoco/gwt-gradle-plugin上获得。如果您需要Gradle的GWT支持,请使用新版本。
因此,下面应该工作:

plugins {
    id "de.esoco.gwt" version "1.1.1"
}
ebdffaop

ebdffaop2#

进入设置-〉Gradle-〉Gradle jdk,确保jdk版本已更新。在我的情况下,通过更新jdk版本解决了问题。

相关问题