当前位置: 首页 > 知识库问答 >
问题:

为什么我不能在完成组装任务之前复制依赖项?

包谭三
2023-03-14

据我所知,组装任务包括以下任务:

:compileJava
:processResources
:classes
:jar
:assemble

我的jar任务依赖于复制库任务,在该任务中,我将所有库从实现配置复制到libs文件夹中。为了获得一个工作的可执行jar,我当前组装了我的项目,执行copy libs任务,然后再次执行jar任务(在libs上迭代并将它们的名称添加到类路径),因为这样做很好。

:compileJava
:processResources
:classes
:jar
:assemble
:copyLibs
:jar

但是,当我通过dependsOn将copy libs任务放在jar任务之前时,当我执行项目时,jar并没有找到所有lib,即使它们似乎已经成功复制。

:compileJava
:processResources
:classes
:copyLibs
:jar
:assemble

编辑:我的build.gradle的复制库和jar任务

project.configurations.implementation.setCanBeResolved(true)

task copyLibs(type: Copy) {
    from configurations.implementation
    into "$buildDir/libs"
}
build.dependsOn copyLibs

jar {
    manifest {
        attributes 'Main-Class': 'dc.v077a.server.ServerMain',
                    'Class-Path': fileTree("$buildDir/libs").filter { 
it.isFile() && !it.name.startsWith("dc-v077a-server") }.files.name.join(' ')
    }
}

共有1个答案

翟修永
2023-03-14
project.configurations.implementation.setCanBeResolved(true)

/*
 * Generate a fat executable jar that includes all implementation dependencies
 */
jar {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest {
        attributes 'Main-Class': 'dc.v077a.server.ServerMain'
    }
    from {
        configurations.implementation.filter{ it.exists() }.collect { it.isDirectory() ? it : zipTree(it) }
    }
}
 类似资料:
  • 1、任务中有未完成的子任务; 2、没有任务状态置位权限(有此权限的角色位【任务创建者/执行者】、【项目创建者】)

  • 我需要在Go中复制一个切片,并读取文档。有一个复制功能可供我使用。 copy内置函数将元素从源片复制到目标片。(作为一种特殊情况,它还会将字节从字符串复制到字节片。)源和目标可能重叠。Copy返回复制的元素数,它是len(src)和len(dst)中的最小值。 但当我这样做的时候: 我的和以前一样是空的(我甚至尝试使用): 你可以去游乐场看看。那么为什么我不能复制一个切片呢?

  • 问题内容: 我有一类带有一些变量的类。当我在主类中实例化该类的对象时。我只能访问和修改一个方法(任何方法)中的成员变量;不在他们外面。这是为什么?我被困住了,似乎无法在Google上找到答案。 我也尝试访问说明符并得到相同的结果 问题答案: 它不起作用,因为您是在无效的Java语法的构造函数或方法之外定义实例的。 可能的解决办法是: 但是您可能要考虑保护您的类变量,例如使所有属性成为并使用和方法来

  • 我想将此SecureSocial快照用于我的项目: 版本信息: Scala版本:2.11.5 SBT版本:0.13.8 播放版本:2.3.7

  • 我创建了一个简单的示例(名称实际上并不意味着什么): GradleMultiProject\core\src\main\java\core.java 堆芯建造

  • 我正在尝试用maven-shade插件2.1构建一个uber-jar。我希望它包括我的jar和依赖jar中的所有类。但我发现它不包括依赖jar中的类。我可能做错了什么?以下是我在pom.xml中对maven-shade插件的用法。可能是因为finalName与project.artifactid相同吗?