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

我对 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,但属性未更改。


你能不能给我一些评论,它应该如何设置?


哔哔one
浏览 152回答 1
1回答

慕标琳琳

看起来“将项目导出为可部署存档”不支持 MANIFEST.MF 中的 Import-Package 标头。此文件由MediatorExportHandler类构建,该类忽略此标头。IJavaProject javaProject = JavaCore.create(project);List<String> exportPac =getExportPackages(javaProject);BundleManifest manifest = new BundleManifest();&nbsp; &nbsp;&nbsp;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());&nbsp; &nbsp;&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java