使用gradle,如何从本地jar表达仅编译时的依赖关系?
我的项目结构如下:使用gradle,如何从本地jar表达仅编译时的依赖关系?,gradle,Gradle,我的项目结构如下: MainProject | |---- ExampleModule | \-src | \-libs | \-LibraryModule-0.1.jar | |---- LibraryModule (from existing source) 我有一个执行以下任务的构建脚本: 构建/编译库模块 制作一个destinationDir设置为ExampleModule/libs的jar/ 组装ExampleModul
MainProject
|
|---- ExampleModule
| \-src
| \-libs
| \-LibraryModule-0.1.jar
|
|---- LibraryModule (from existing source)
我有一个执行以下任务的构建脚本:
dependencies {
compileOnly 'libs:LibraryModule-0.1.jar'
}
对于本地jar,就像mavenCentral或jcenter的任何依赖项一样,如果在jar文件名的末尾有一个版本号,则必须这样表示:
compileOnly 'libs:LibraryModule-build:0.1'
请注意,如果我将我的jar命名为“LibraryModule.jar”,只需
compileOnly 'libs:LibraryModule'
那就行了
注意-如果您在项目中使用gradle来开发注释处理工具或任何其他仅在编译时依赖的工具,建议您使用。而且,你完全错了。你认为注释处理器是如何工作的?@PrestonGarno不会因为人们的错误评论而兴奋。当你保持冷静,像在这里那样回答问题时,人们会认出你是专业人士。如果我是你,我会删除我最后的评论并公布答案@阿尔法森说得好,尽管我认为这样低投入的评论是好的,但我个人知道的足够多的开发人员正是因为这个原因在这里不活跃。@Gabeschen忘了标记,有趣的是,我在写评论时对自己思考了一个罕见的注释处理案例。但由于这是如此罕见,我推开了自己的疑虑。我很高兴你没有太灰心,并发现了一些见解。感谢你发布了一个答案,如果你还可以添加到相关在线资源的链接,那将是极好的@阿尔法辛:有趣的是,我在网上没有找到任何关于它的信息。可能是因为只有编译时依赖项和本地jar的唯一用例(我能想到的)是用于开发元编程库,而这在java和gradle中并没有很好的文档记录(我相信注释处理包含在JDK 1.6+中,gradle还没有正式支持这一点). 在我决定将jar名称缩减为简单的字符以解释正则表达式和gradle在幕后进行的任何解析之后,我就明白了这一点。