Gradle:将一堆jar安装到本地Maven存储库

时间:2016-04-29 12:52:11

标签: java gradle jar

我的项目依赖于一堆不在Maven存储库中的jar文件。我可以将它们声明为文件依赖项,但我宁愿使用Gradle的依赖项管理器,因此我需要将它们安装到本地Maven存储库。

我正在考虑编写一个任务,比如说," installFiles",以及编译" compileJava"依赖于它,因此它将首先运行,并且这些依赖项将在编译之前出现在本地Maven存储库中。然后我将它们声明为正常的外部模块依赖项,以便Gradle的依赖管理器可以处理它们。

我的问题是,如何将一堆罐子安装到本地Maven存储库?我发现的所有文档都只谈到安装当前项目的结果,而不是一些任意的罐子。

2 个答案:

答案 0 :(得分:1)

只需关注Gradle Documentation

即可

这里是为方便起见的引用:

apply plugin: "maven-publish"

publishing {
  publications {
    maven(MavenPublication) {
      artifact 'my-file-name.jar' // Publish a file created outside of the build
    }
  }
}

答案 1 :(得分:0)

你在哪里获得这些任意罐子?在哪里可以获得他们的POM信息,如moduleId,groupID,version等?

您可以创建一个gradle任务来构建POM,然后发布到maven repo,但我认为更简单的解决方案是使用maven进行初始发布。你可以运行这个maven命令

mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file  \
    -Dfile=path-to-your-artifact-jar \
    -DgroupId=your.groupId \
    -DartifactId=your-artifactId \
    -Dversion=version \
    -Dpackaging=jar \
    -DlocalRepositoryPath=path-to-specific-local-repo

如果跳过最后一个参数,工件将发布到maven settings.xml中声明的默认本地仓库

Reference

在做这件事时你应该考虑几件事:

  1. 您的构建仅在本地计算机上有效。由于您推送到本地仓库的罐子对于您的构建设置是独一无二的,因此您的项目不再可移植。

  2. 如果您的jar有自己的依赖关系,上面的答案不会在POM中生成该信息,您必须自己添加它或在下游项目中手动管理传递依赖。