我当前的jar在build中。gradle如下所示:
jar {
manifest {
attributes "Main-Class": "hoge.Main"
}
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
而且工作得很好。
然而,我有一个来自格雷德的消息(可能是从6号开始?)
这是实际消息:
The compile configuration has been deprecated for dependency declaration. This will fail with an error in Gradle 7.0. Please use the implementation configuration instead.
零件<代码>配置。不推荐使用compile。
如何更新?
如果我改变了
jar {
manifest {
attributes "Main-Class": "hoge.Main"
}
from configurations.implementation.collect { it.isDirectory() ? it : zipTree(it) }
}
Gradle说
编译配置已被弃用,取而代之的是实现。
见文件。
在本例中,您需要将编译替换为运行时类路径。
在以前的Gradle版本中,编译有太多的责任:
声明依赖项
对于依赖关系声明,它已经被实现所取代,还需要被解决问题的东西所取代。
但是,在您的情况下,您很可能希望打包运行时依赖项而不是编译依赖项。因此,您应该使用
runtimeClasspath
作为要解析的配置。而不是compileClasspath
,它不包含任何runtimeOnly
依赖项。
对于其他想要将Gradle配置升级到7.0格式的人,请注意,如果您使用java插件,只需将编译替换为实现或api很可能会出错。您需要使用java库插件。文档
确保在gradle.config
中替换:
apply plugin: 'java'
与:
apply plugin: 'java-library'
对于非传递依赖项使用实现
,对于传递依赖项使用api
(如果依赖项由项目的依赖项直接使用)。
我想构建这个项目,以便最终的jar在一个jar文件中包含所有依赖项(如果不可能的话,包括从依赖项到jar文件的类),我遵循了线程Including dependencies in a jar with Maven,但它也包含了我在pom中甚至没有提到的依赖项。这是我的POM,它只有两个依赖项。 我想当Final构建时,它包括pom中提到的特定依赖项(以类或jar形式)
我尝试使用gradle build的以下格式创建一个jar库,以便以后可以将其作为jar包导入该项目中的其他人。但是,生成的jar只有一个清单文件,没有java文件。 这些文件在Eclipse中的一个包中。 感恩节。
问题内容: 最近,我接受了用JSF编写的Web系统的支持和编程。代码有点凌乱和多余,是的,不存在任何文档。 该系统具有40多个jar库,由于旧版本和测试,其中大多数是冗余的。要删除一个jar,我必须检查它是否未在代码中导入,因此我在代码中搜索了jar导入路径(我正在使用IntelliJ IDE),确保未使用它,然后将其删除。 但是,在编译代码后,在测试过程中发生了许多运行时错误。我发现我删除了
本文向大家介绍Apache Maven 创建具有项目所有依赖项的.jar文件,包括了Apache Maven 创建具有项目所有依赖项的.jar文件的使用技巧和注意事项,需要的朋友参考一下 示例 要创建包含所有依赖项的JAR,可以使用内置描述符格式jar-with-dependencies。以下示例package使用此内置描述符并声明的主类来配置绑定到该阶段的Assembly Plugin的执行co
我正在使用war插件为我在Gradle中的项目生成一个简单的.war文件。我想知道如何配置gradle,这样我就可以创建4个不同的.war文件,这些文件具有不同的依赖关系。 null 下面的示例创建了一个只包含一个jar的war文件,但我希望使用不同的jar生成5个不同的.war文件。 Build.Gradle
我是和的新手。我正在尝试在远程计算机上运行hdfs MapReduce作业。我没有写入/编辑依赖项文件的权限。我想知道是否可以将我的Maven项目传递给我的MapReduce作业。这样,我就不需要SSH进入远程机器并更改maven项目的依赖关系。我将使用包含远程计算机上未包含的所有所需依赖项的JAR来运行我的MapReduce作业。