为了账号安全,请及时绑定邮箱和手机立即绑定

WSO2 和创建可部署存档从 Maven 获取旧属性

WSO2 和创建可部署存档从 Maven 获取旧属性

哔哔one 2021-06-04 08:19:41
我对 WSO2 ESB 有另一个问题。我创建了一些 Maven 项目。该项目包含在 WSO2 的 Java 库项目中。在库项目中,我在 pom.xml 中设置了 maven-bundle-plugin。它通过 Maven 构建正确创建了 MANIFEST,但将项目导出为可部署存档创建了带有旧属性的 MANIFEST.md(我认为,在通过 Eclipse 创建新项目后,带有属性的 MANIFEST(未更改的 SymbolicName,没有导入)。Maven 项目,带有用于捆绑 POM.xml 的类<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.coig.esb.osgi</groupId>  <artifactId>emf</artifactId>  <version>1.0.0</version>  <packaging>jar</packaging>  <name>emf</name>  <url>http://maven.apache.org</url>  <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  </properties>  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>3.8.1</version>      <scope>test</scope>    </dependency>    <!-- https://mvnrepository.com/artifact/javax.persistence/javax.persistence-api -->  <dependency>      <groupId>javax.persistence</groupId>      <artifactId>javax.persistence-api</artifactId>      <version>2.2</version>  </dependency>  </dependencies></project>然后将上面项目中的 jar 文件从 WSO2 导入到 Java 库项目中。Java 库项目 POM.xml<?xml version="1.0" encoding="UTF-8"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  <modelVersion>4.0.0</modelVersion>  <groupId>com.coig.esb.osgi.emf.EMFService</groupId>  <artifactId>EMFService</artifactId>  <version>1.0.0</version>  <packaging>bundle</packaging>  <name>EMFService</name>  <description>EMFService</description>  <properties>    <CApp.type>lib/library/bundle</CApp.type>当我创建了 Mediator 项目时,设置 maven-bunlde-plugin 来导入我之前提到的模块,也有同样的情况。Maven 构建会创建正确的 MANIFEST.md,但将项目导出为可部署存档会创建 MANIFEST.md,但属性未更改。你能不能给我一些评论,它应该如何设置?
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

看起来“将项目导出为可部署存档”不支持 MANIFEST.MF 中的 Import-Package 标头。此文件由MediatorExportHandler类构建,该类忽略此标头。


IJavaProject javaProject = JavaCore.create(project);


List<String> exportPac =getExportPackages(javaProject);

BundleManifest manifest = new BundleManifest();    

manifest.setBundleName(project.getName());

manifest.setBundleSymbolicName(project.getName());

manifest.setBundleDescription(project.getName());

manifest.setBundleVersion("2.0");

manifest.setExportPackagesList(exportPac);

[...]

File manifestFile=new File(metainfPath,"MANIFEST.MF");

FileUtils.createFile(manifestFile, manifest.toString());    


查看完整回答
反对 回复 2021-06-10
  • 1 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信