我在本地安装了weblogic 10.3.6。我通常在我的Eclipse项目的类路径中添加wlserver_10.3\server\lib\weblogic.jar
,它将所有其他weblogic运行时jar从weblogic.jar的MANIFEST.MF文件带到类路径。
当我将weblogic jar添加为平面目录依赖项时,我的问题是gradle项目。
它仅将weblogic.jar拉到类路径,但不尊重它的MANIFEST.MF,并且不带所有其他jar。
gradle是否有任何标准方法可从包含的jar的MANIFEST.MF中提取依赖项?
答案 0 :(得分:0)
没有标准方法,但是可以应用解决方法。您可以定义一个方法,该方法读取weblogic.jar清单文件的类路径并返回可在依赖项中使用的文件列表。
// Method to return files mentioned in manifest file
import java.util.jar.Attributes;
def getWeblogicDependencyFiles() {
def fileList = []
def weblogicJarDir = '/path/to/webLogic/folder/10.3.6/wlserver_10.3/server/lib'
def classPathJars = new java.util.jar.JarFile(weblogicJarDir+'/weblogic.jar').manifest.mainAttributes.get(Attributes.Name.CLASS_PATH).split(' ')
for(String jarName : classPathJars) {
if("".equals(jarName.trim())) {
continue;
}
fileList.add(file(weblogicJarDir+'/'+jarName))
}
return fileList
}
下一步,将此方法的输出分配给变量
// Make te output available to project
project.ext.weblogicDependencyFiles = getWeblogicDependencyFiles();
现在您可以将这些文件用作项目中的依赖项
// Dependency
dependencies {
compile files(weblogicDependencyFiles)
}
同样,这只是一种解决方法。更好的方法是从中央存储库定义依赖项。