在根项目 gradle 中找不到任务“安装”

Low*_*ool 8 groovy gradle maven

我正在尝试使用 Maven 插件将我的 Gradle 项目转换为 Maven。我正在关注此SO 链接,但是当我运行 Gradle 安装命令时,出现以下错误

C:\Users\>gradle install

FAILURE: Build failed with an exception.

* What went wrong:
Task 'install' not found in root project .

* Try:
Run gradle tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log outpu

* Get more help at https://help.gradle.org

BUILD FAILED in 0s
Run Code Online (Sandbox Code Playgroud)

当我这样做时,gradle -tasks它没有显示安装。对此该怎么办?

Vam*_*ire 5

您的意思可能是https://docs.gradle.org/current/userguide/build_init_plugin.htmlgradle init中描述的那样吗?

如果您将任务应用到您未执行的构建中,则该任务将由插件install添加。它将构建的工件安装到本地 Maven 存储库。在你的情况下这不是你想要的。无论如何,我建议使用插件而不是插件。mavenmaven-publishmaven


Moh*_*nan 5

如果添加,apply plugin: 'maven'则会gradle install创建一个 POM。

Gradle 脚本是这样的。

buildscript {
     repositories {
         maven { url "http://repo.spring.io/snapshot" }
         maven { url "http://repo.spring.io/milestone" }
         maven { url "https://repo1.maven.org/maven2/" }
         mavenLocal()
        mavenCentral()

    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: "org.springframework.boot"
apply plugin: 'io.spring.dependency-management'
jar {
    baseName = 'Angular-Boot-Rest'
    version =  '0.1.0'
}

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "http://repo.spring.io/libs-release" }
}


tasks.withType(Copy) {
    eachFile { println it.file }
}
jar {
    enabled = true
}
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("junit:junit")
} 

task stage(dependsOn: ['clean','build','jar', 'installApp']){}
Run Code Online (Sandbox Code Playgroud)

创建的POM是这样的。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId/>
  <artifactId>Angular-Boot-Rest</artifactId>
  <version>unspecified</version>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>tomcat-annotations-api</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.0.5.RELEASE</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你。看起来 gradle 在 gradle 7 中删除了 maven 插件。有一个名为 maven-publish 的新插件。更多详细信息请参见:https://docs.gradle.org/7.0/userguide/upgrading_version_6.html?_ga=2.36206368.1811891725.1642614013-1790628645.1642007601#removal_of_the_legacy_maven_plugin (2认同)