我的项目依赖于一堆不在Maven存储库中的jar文件。我可以将它们声明为文件依赖项,但我宁愿使用Gradle的依赖项管理器,因此我需要将它们安装到本地Maven存储库。
我正在考虑编写一个任务,比如说," installFiles",以及编译" compileJava"依赖于它,因此它将首先运行,并且这些依赖项将在编译之前出现在本地Maven存储库中。然后我将它们声明为正常的外部模块依赖项,以便Gradle的依赖管理器可以处理它们。
我的问题是,如何将一堆罐子安装到本地Maven存储库?我发现的所有文档都只谈到安装当前项目的结果,而不是一些任意的罐子。
答案 0 :(得分:1)
这里是为方便起见的引用:
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中声明的默认本地仓库
在做这件事时你应该考虑几件事:
您的构建仅在本地计算机上有效。由于您推送到本地仓库的罐子对于您的构建设置是独一无二的,因此您的项目不再可移植。
如果您的jar有自己的依赖关系,上面的答案不会在POM中生成该信息,您必须自己添加它或在下游项目中手动管理传递依赖。