问题描述:
我正在使用Gradle Shade插件,它一切正常,它将资源文件复制到最终的jar。但是,正如文档所说,它不能包含其他. jar
文件作为资源,因为它无法将它们与依赖项区分开来。它解压缩它们是ntead。
我想做的是:我想复制额外的代码。jar文件从工具文件夹(位于我的build.gradle旁边)放入由shadowJar任务生成的最终jar。
问题:如何扩展任务(
shadowJar)以将其他文件复制到生成的jar文件中。
匿名用户
Gradle shadow插件的文档中,在shadow Jar中嵌入Jar文件一节中回答了这个问题:
[...] shadow无法区分配置为依赖项的jar文件和资源文件夹中包含的jar文件。这意味着在资源目录中找到的任何jar都将与任何其他依赖项一样合并到影子jar中。如果您打算将jar嵌入其中,则必须将jar重命名为不以结尾。在影子任务开始之前。
不幸的是,这既适用于作为依赖配置一部分的JAR,也适用于使用来自复制规范的复制JAR(这是因为影子Jar
任务扩展了jar
任务;这反过来又是一个复制任务,因此支持复制规范)。
因此,只能通过重命名来嵌入JAR。如果必须命名它。jar在优步jar中,我认为唯一的选择是三步解决方案:
创建优步JAR并通过重命名嵌入JAR;e、 g.使用后缀。邮政编码
shadowJar
{
from("${dirThatContainsSomeJARs}")
{
include '*.jar'
rename '(.+).jar', '$1.zip'
}
}
我有一个Windows文件夹结构和文件,如下所示 c:\源文件\file1.txt c:\源文件夹\subfolder1\file2.txt c:\源文件夹\子文件夹2\file3.txt 我想复制所有文件到目标文件夹,如下所示 c:\DestinationFile\file1.txt c:\DestinationFile\file2.txt c:\DestinationFile\file3.tx
我有一个META-INF文件夹,其中有persitence.xml和orm.xml。当我用下面的gradle构建一个jar文件时,这些文件不会包含在jar中。如何将这些文件复制到jar中?
问题内容: 我尝试构建jar,然后将其复制到另一个文件夹。 但是我找不到一个问题。copyJarToBin任务尝试复制旧的jar。如果我删除项目中的/ build文件夹并运行buildApp()任务,则任务createJar()将生成.jar文件,但copyJarToBin()找不到该.jar文件。 你可以帮帮我吗? 谢谢。 问题答案: 罪魁祸首是您的任务。做的时候 您可以在配置期间使用该方法复制
问题内容: 我运行以下命令: MyException在dependency.jar中。我也尝试用-classpath替换-cp。我做错了什么? 问题答案: 如果使用,则将忽略这些选项。如果在类路径上需要额外的jar文件,则应在清单中指定以下内容: (然后,您可以使用来运行程序。)
我正在尝试制作一个.jar文件(这是我第一次),我很困惑。我了解如何使用命令提示符创建一个简单的jar文件,但对于我的程序,我导入了JavaMail API和我创建的另一个库(名为ArrayLibrary,其中填充了排序方法)。我如何在一个jar文件中创建这些?