在我的gradle java库项目中,我依赖于一个本地jar文件(工件不在任何地方发布)。依赖项配置如下所示:
dependencies {
api fileTree(dir: '3rdparty', include: '*.jar')
}
当我将我的库发布到maven local中,然后从另一个项目中将其拉入时,3RDParty文件夹中jar中的符号在类路径上不可用,尽管它被列为api依赖项。这仅仅是在库模块中直接使用jar文件的限制吗?
这是对文件依赖关系的一个众所周知的限制。Gradle文档对此很清楚
文件依赖项不包括在为项目发布的依赖项描述符中。但是,文件依赖项包含在同一生成中的可传递项目依赖项中。这意味着它们不能在当前生成之外使用,但可以在同一生成内使用。
原因很简单,与托管在二进制存储库中的工件相比,其他项目无法从外部解析这些依赖关系。在声明依赖项用户指南中阅读有关此主题的更多信息。
我在build.gradle文件中添加了下面的依赖项。Eclipse插件是在build.gradle中添加的。 一旦我运行gradle eclipse命令,所有的compile依赖项都会添加到类路径中,但是testcompile依赖项不会添加到类路径中。
我罐子里的东西: 下面是我使用JAR的方法:
可以在pom中包含本地文件。xml,或者在本地存储库中安装jar文件,或者提供指向本地jar的链接,并将范围设置为“system”。如果我包括一个胖jar(=包含所有可传递依赖项的jar),会发生什么?Maven是否仍然能够正确地检测依赖冲突,我是否仍然能够排除我的“胖jar依赖”的一些可传递依赖? 问题是,我正在从事一个遗留软件项目,该项目之前没有使用任何构建工具/依赖关系管理工具(因此所有需要
我正在使用gradle构建一个groovy/java应用程序。在我向google guice 3.0添加依赖项之前,这一直很好。Gradle不会将guice jar添加到编译类路径中,至少看起来是这样。我遇到了这样的错误: 在我的身材中。gradle file I具有以下依赖项: 我正在使用Springsource工具套件2.9.2及其gradle插件开发应用程序,它使用gradles依赖关系管理
我有一个jar,build-plugins.jar和一个gradle插件,它是用build.gradle中的这个插件构建的: 这将构建build-plugins.jar。并且使用插件的项目按文件引用插件jar 问题是当我运行第二个项目的任何任务时,我得到的是“class proxy created for class XYZ”,根本原因是四个依赖项(joda-time、commons-io、str
我正在使用Gradle构建系统开发一个IntelliJ插件。这个插件使用一个公共模型,它是一个maven项目。 我已经将mavenLocal包含在我的gradle存储库中,并且还在“dependencies”中添加了编译时依赖项。 代码编译得很好,但我在运行时得到了java.lang.NoClassDefoundError。当我检查gradle中的依赖项时,它并没有列出本地maven jar(模型