- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要以以下格式在 jar 文件的 MANIFEST.MF 中添加数据我尝试了以下方法但无法实现。我需要通过以下方式。我正在使用 gradle 2.3 和 java
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
我的build.gradle
`apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.12'
compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.4'
compile 'org.apache.logging.log4j:log4j-api:2.4'
compile 'org.apache.logging.log4j:log4j-core:2.4'
compile 'commons-cli:commons-cli:1.3.1'
compile 'commons-io:commons-io:2.4'
testCompile 'junit:junit:4.12'
}
jar {
sourceCompatibility = 1.7 //Java version compatibility to use when compiling Java source.
targetCompatibility = 1.7 //Java version to generate classes for.
compileJava.options.debugOptions.debugLevel = "source,lines,vars" // Include debug information
manifest {
attributes(
"Manifest-Version": "1.0",
"Class-Path": configurations.compile.collect { "libs/" + it.getName() }.join(' ')
)
}
}`
我在 MANIFEST.MF 中有此文本
Manifest-Version: 1.0
Class-Path: libs/slf4j-api-1.7.12.jar libs/log4j-slf4j-impl-2.4.jar li
bs/log4j-api-2.4.jar libs/log4j-core-2.4.jar libs/commons-cli-1.3.1.j
ar libs/commons-io-2.4.jar
有什么想法吗?如何在 list 中正确写下库列表?如果我用换行符删除多余的空格,则 jar 文件将运行。
最佳答案
一切都与要求有关。根据this ,在 list 文件中:
No line may be longer than 72 bytes (not characters), in its UTF8-encoded form. If a value would make the initial line longer than this, it should be continued on extra lines (each starting with a single SPACE).
Gradle 会在每 72 个字符后插入新的行分隔符,因为您有一个字符串作为集合类路径元素。但自从:
Class-Path :
The value of this attribute specifies the relative URLs of the extensions or libraries that this application or extension needs. URLs are separated by one or more spaces.
可以制定一个相当棘手的解决方案,您必须将所有类路径的条目收集到一个变量中,并设置该变量的格式,以便每个元素都位于长度为 72 的单独行中,并且每行都以单个空格开头。举个例子:
int i = 0;
String classpathVar = configurations.compile.collect { " libs/" + (i++==0?String.format("%0\$-50s", it.getName()):String.format("%0\$-62s", it.getName())) }.join(" ");
jar{
manifest {
attributes("Implementation-Title": "SIRIUS Workflow Executor",
"Implementation-Version": version,
"Class-Path": classpathVar )
}
}
会给你这样一个 list 文件内容,例如:
Class-Path: libs/snmp4j-2.3.4.jar
libs/jaxb
libs/datamodel.jar
libs/log4j-1.2.17.jar
根据文档,它必须有效。
关于java - 在java 8中的gradle中的jar的Manifest文件中添加Classpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758244/
当在 python 包中包含外部文件时,我在 MANIFEST.in 中将其定义为 MANIFEST.in include aikif/web_app/static/* 构建包将生成一个 MANIFE
我们使用 java 插件的 manifest 属性将 MANIFEST.MF 文件写入我们的 jar 工件。 我们还使用 gradle 构建 GWT 项目,并且我们为这些项目定义的输出是 zip。我想
感谢您的阅读! 当我做 docker-compose up在 laradock 上,我终于收到了一个类似标题的错误。 在这种情况下,有人知道正确的解决方案吗? 原来我有那个laradock,但我不小心
我收到以下错误,但我的 list 文件没有问题。 我尝试更改项目名称,但更改项目名称后出现此错误。帮助我解决此错误,而无需将项目名称更改回旧名称。 我的旧项目名称是“radio”,我的新项目名称是“M
错误: list 文件没有以最后的换行符结尾... 检查 list 文件是否以最后的换行符结尾(按照 JAR 规范的要求) 应为“:” 这是 AndroidManifest
大家好! 我在部署 Shiny App 时遇到问题。部署应用程序时,我得到以下控制台输出: Preparing to deploy application...DONE Uploading bundl
我开始使用 Android 进行开发。我将 SDK 23 与 Android M 权限的系统一起使用。在互联网的例子中,当我想检查权限时,我发现: this.checkSelfPermission(M
使用 SHA256 摘要标识符 拉取图像失败 最佳答案 不幸的是,这是 DockerHub 删除 Docker 1.9 守护进程的向后兼容性的副作用。当使用 Docker 1.10 推送图像时,较旧的
我正在使用 Next.js 开发一个服务器端渲染网站,我想让它成为一个渐进式 Web 应用程序,但问题是我找不到让它正确发生的方法。 当我构建应用程序时,它可以正确地为 service worker
我在 Windows 上使用 Docker,当我尝试使用此命令提取 PHP 镜像时 $ docker pull php 我收到这条消息: Using default tag: latest lates
我收到错误消息“标记属性包具有无效字符‘’。”在 Android Manifest 中,虽然没有明显的无效字符。这是代码:
我是 JavaScript 开发新手。我正在尝试制作一个可以在 iOS 和 Android 设备上离线运行的应用程序。我在没有示例的情况下学习时遇到困难,而且我找不到满足我需要的示例。 这是我发现的;
我在 Windows 上使用 Docker,当我尝试使用此命令提取 PHP 镜像时 $ docker pull php 我收到了这条消息: Using default tag: latest late
以下是我的代码:。AndroidManifest.xml。在MainActivity.Java中
当我安装 ExtUtils::Manifest 时,perl 推荐我安装 ExtUtils::Manifest。 操作系统为Win10,perl版本为strawberry-perl-5.24.4.1-
我一直在仔细阅读 app.manifest,但我不明白。好吧,我确实知道您需要它来做一些事情,例如:我们确实需要和使用。但还有这个: 这是我没有得到的部分,我可以将其忽略而不会有任何后果,对吗?我们
我创建了一个类如下: #include #define DLLEXPORT _declspec( dllexport ) using namespace std; class DLLEXPORT
我在使用webpack运行应用程序时遇到问题,出现以下错误: URIError: Failed to decode param '/%PUBLIC_URL%/manifest.json' at
我可以使用 Java 执行此操作吗? 我指的是 在 Android list 中 如果不能,我至少可以提供可供用户选择的替代方案吗? 最佳答案 看this and the asker referen
使用maven得到编译好的*.war文件,其中包含: - META-INF - - MANIFEST.MF - WEB-INF - - classes - - lib - - web.xml 使用 j
我是一名优秀的程序员,十分优秀!