2016-04-29 105 views
1

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

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

我的问题是,我如何安装一堆瓶子到本地Maven仓库?我发现的所有文档都只是讨论安装当前项目的结果,而不是一些任意的jar。

回答

1

只需按照Gradle Documentation

在这里为方便起见报价:

apply plugin: "maven-publish" 

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

OP不询问从项目产生的工件。 – RaGe

+0

OP的问题在确切的链接段落 – Vampire

+0

回答我很抱歉。你是对的。 – RaGe

0

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

您可以创建一个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. 如果您的罐子具有自己的依赖关系,上面的答案不会在POM中生成该信息,您必须将其添加到自己或者在下游项目中手动管理传递依赖关系。

相关问题