当前位置: 首页 > 面试题库 >

使用Gradle在清单中添加类路径

熊嘉茂
2023-03-14
问题内容

我希望Gradle构建脚本将完整的Classpath添加到构建后创建的JAR文件中包含的清单文件中。

例:

Manifest-Version: 1.0
Class-Path: MyProject.jar SomeLibrary.jar AnotherLib.jar

我的构建脚本已经通过这种方式向清单添加了一些信息:

jar {
    manifest {
        attributes("Implementation-Title": project.name,
            "Implementation-Version": version,
            "Main-Class": mainClassName,
    }
}

如何获取要添加到清单的依赖项列表?

Java教程的此页面详细描述了如何以及为什么向清单中添加类路径:将类添加到JAR文件的类路径中


问题答案:

在Gradle的论坛上找到了一个解决方案:

jar {
  manifest {
    attributes(
      "Class-Path": configurations.compile.collect { it.getName() }.join(' '))
  }
}

来源:子项目的Jar任务中带有类路径的清单



 类似资料:
  • 我希望我的Gradle构建脚本将完整的类路径添加到构建后创建的JAR文件中包含的清单文件中。 如何获取要添加到清单中的依赖项列表? 这一页的Java教程更详细地描述了如何以及为什么将类路径添加到清单中:将类添加到JAR文件的类路径中

  • 问题内容: 我正在使用Gradle的Application插件为独立的Java应用程序生成安装。我有一个配置文件,需要放在类路径中,但似乎无法在sh / bat文件中正确生成它。该配置文件需要位于jar的外部。 conf文件位于目录中,因此当我运行它时,会将其安装在conf目录下,如下所示。 我尝试将这个目录添加到claspath中,如下所示: 但是当我查看sh / bat文件中的类路径时,它会添

  • 我正在使用Java代理和Javassist向一些JDK类添加一些日志记录。实际上,当系统加载一些TLS类时,Javassist会向它们添加一些额外的字节码,以帮助我调试一些连接问题。 问题是,考虑到这个类包含在代理jar中: 在我的代理的转换方法中,假设我试图使用javassist调用该类: 你认为这行得通,但我得到了这个: 有没有办法将该类[]添加到应用程序的类路径中?

  • 我希望title本身是描述性的,但要明确的是,我试图在greeting-service.jar中包含(即,error-handling-service.jar)。在构建之后,我在新项目(即TestApplication)中包含了greeting-service.jar,但在执行我得到的TestApplication时(顺便说一句,TestApplication不是一个gradle项目) BaseE

  • 我在build.gradle文件中添加了下面的依赖项。Eclipse插件是在build.gradle中添加的。 一旦我运行gradle eclipse命令,所有的compile依赖项都会添加到类路径中,但是testcompile依赖项不会添加到类路径中。

  • 在能够导入RecyclerView后弹出此错误消息。我找不到源头,也找不到解决方法。错误消息似乎也很难理解。 错误:任务“:app:ProcessDebugManifest”执行失败。清单合并失败:来自[com.android.support:AppCompat-V7:25.3.1]androidmanifest.xml:27:9-31的属性元数据#android.support.version@