当前位置: 首页 > 知识库问答 >
问题:

如何让gradle在项目的根部为maven用户生成有效的pom.xml文件?

宗政权
2023-03-14

虽然现在只有两天时间,但我对在所有Java项目中使用gradle非常感兴趣,并将pom.xml从所有项目的根中删除。

但是,我希望保持与Maven兼容,因为我希望gradle任务能够在用户需要的情况下在项目的根生成合适的pom.xml。

目前,我对pom.xml的唯一引用是在build.gradle文件的这一部分中(这里只做了很少的修改):

uploadArchives {
    repositories {
        mavenDeployer {
            beforeDeployment {
                MavenDeployment deployment -> signing.signPom(deployment);
            }

            repository(url: sonatypeRepoURI) {
                authentication(userName: sonatypeUsername,
                    password: sonatypePassword);
            }

            pom.project {
                name "${name}";
                packaging "bundle";
                description "${description}";
                url "${projectURL}";

                scm {
                    url "${gitroscm}";
                    connection "${gitroscm}";
                    developerConnection "${gitrwscm}";
                }

                licenses {
                    license {
                        name "Lesser General Public License, version 3 or greater";
                        url "http://www.gnu.org/licenses/lgpl.html";
                        distribution "repo";
                    }
                }

                developers {
                    developer {
                        id "whocares";
                        name "whocares";
                        email "whocares";
                    }
                }
            }
        }
    }
}

共有1个答案

籍弘伟
2023-03-14

您可以使用gradle maven插件。这将向项目中添加pom约定方法,您可以在任务中使用该方法生成pom.xml文件,例如

task writeNewPom {
    doLast {
        pom {
            project {
                groupId 'org.example'
                artifactId 'test'
                version '1.0.0'
                inceptionYear '2008'
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        distribution 'repo'
                    }
                }
            }
        }.writeTo("pom.xml")
    }
}

然后调用gradle createpom在项目根中生成pom.xml。在pom定义中的所有内容中,您应该真正提供groupidartifactidversion,其他内容如许可证并不那么重要。

您还可以查看此示例中带有一些依赖项的项目定义,并尝试运行它以查看其产生的结果。

 类似资料:
  • 问题内容: 虽然只有两天了,但是我肯定会在所有Java项目中都使用gradle,并从所有项目的根目录中删除pom.xml,这对我肯定是有利的。 但是,我希望保持与Maven兼容,就某种意义而言,我希望gradle任务能够在用户希望的项目根目录下生成合适的pom.xml。 目前,我对pom.xml的唯一引用是在build.gradle文件的这一部分中(只需进行很少的修改,就可以在这里找到): 我如何

  • 问题内容: 我想让Maven2为我的应用程序生成.jnlp(webstart配置文件)。 有一个maven-jnlp-plugin,但自Maven 1.1-beta2以来的某个地方已不推荐使用。 有没有更优选的方法来执行此操作,或者我需要自己构建此功能? 问题答案: 还有用于maven2的webstart-maven-plugin

  • 我有一个包含多个子项目的根项目。最初,我们将这些项目作为独立的Maven项目保留,但我意识到Gradle更适合我使用。但是对于其中一个子项目,我们宁可不将其转换为Gradle项目,而将其保留为Maven项目。 root/build.gradle root/common.gradle root/api/pom.xml

  • 我做了一个简单的项目,其中包含一些测试,我希望能够在其他计算机上启动测试。我使用runas构建了这个项目- 错误:在com类中找不到Main方法。实例TestPurchase,请将main方法定义为:publicstaticvoidmain(String[]args)或JavaFX应用程序类必须扩展JavaFX。应用应用 据我所知,TestNG不需要任何主方法,因为有注释。这就引出了一些问题: 我

  • 问题内容: 当我尝试使用生成Eclipse项目文件时,出现以下错误: 插件管理器中执行目标’org.apache.maven.plugins:maven-eclipse- plugin:2.9-SNAPSHOT:eclipse’的内部错误:无法加载mojo’org.apache.maven.plugins:maven- eclipse-plugin:插件``org .apache.maven.pl

  • 嗨,我有一个包含两个库模块的gradle android项目: 所以LibB依赖于LibA。因此,LibB 的 build.gradle 文件如下所示: 如您所见,我想为gradle项目中的每个库模块生成. aar文件。到目前为止还不错,但是生成对LibA具有正确依赖关系的pom.xml文件并没有像预期的那样工作: pom。LibB的xml文件如下所示: 有没有办法在生成的pom文件中指定LibA

  • 我正在尝试构建/部署/运行这个maven/apache tomcat项目LODE。 这是我第一次看到这种风格的java web应用程序。我遵循了该项目网站上提供的说明。从maven clean安装开始。然后生成一个src文件夹,其中包含一个java文件夹(包含java类)和一个webapp文件夹(包含web资源),见图。 我习惯于有一个WebContent文件夹,可以生成WAR文件。 如何将此项目

  • 我通常使用这个mvn命令来生成一个maven项目框架: 问题是maven使用maven官方repo(repo.maven.apache.org)下载工件。如果我试图在公司防火墙后面这样做,那就失败了。该公司确实有一个maven回购镜像网站,但我不知道如何重新指导maven使用该网站,而不是maven回购官方网站。 在这种情况下是否有配置更改/巡视?