Java WSO2和创建可部署归档从Maven获取旧属性
我还有一个WSO2 ESB问题。我创建了一些Maven项目。该项目包含在WSO2的Java库项目中。在库项目中,我在pom.xml中设置了maven bundle插件集。它通过Maven build正确地创建了清单,但将项目导出为可部署归档文件会使用旧属性创建MANIFEST.md(我认为,在通过Eclipse创建新项目后,使用属性创建清单(未更改的符号名称,没有导入) Maven项目与绑定POM.xml的类Java WSO2和创建可部署归档从Maven获取旧属性,java,maven,wso2,osgi,maven-bundle-plugin,Java,Maven,Wso2,Osgi,Maven Bundle Plugin,我还有一个WSO2 ESB问题。我创建了一些Maven项目。该项目包含在WSO2的Java库项目中。在库项目中,我在pom.xml中设置了maven bundle插件集。它通过Maven build正确地创建了清单,但将项目导出为可部署归档文件会使用旧属性创建MANIFEST.md(我认为,在通过Eclipse创建新项目后,使用属性创建清单(未更改的符号名称,没有导入) Maven项目与绑定POM.xml的类 <project xmlns="http://maven.apache.org/
<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>
Maven构建中的MANIFEST.md
Manifest-Version: 1.0
Bundle-Description: EMFService
Bundle-SymbolicName: com.coig.osgi.emf.providerservice
Built-By: author
Bundle-ManifestVersion: 2
Bnd-LastModified: 1532429067922
Embed-Dependency: emf
Import-Package: javax.persistence;version="[2.2,3)"
DynamicImport-Package: *
Tool: Bnd-1.15.0
Export-Package: com.coig.esb.osgi.emf;uses:="javax.persistence",com.co
ig.esb.osgi.emf
Bundle-Version: 1.0.0
Bundle-Name: EMFService
Bundle-ClassPath: .,emf-1.0.0.jar
Created-By: Apache Maven Bundle Plugin
Build-Jdk: 1.8.0_172
当我创建Mediator项目时,将maven bunlde plugin设置为导入我前面提到的模块,也会出现同样的情况。maven build创建正确的MANIFEST.md,但将项目导出为可部署归档创建属性不变的MANIFEST.md
您能给我一些说明,它应该如何设置吗?看起来“将项目导出为可部署存档”不支持MANIFEST.MF中的导入包头。此文件是由忽略此头的类生成的
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());
IJavaProject-javaProject=JavaCore.create(项目);
列出exportPac=getExportPackages(javaProject);
BundleManifest清单=新BundleManifest();
setBundleName(project.getName());
manifest.setBundleSymbolicName(project.getName());
manifest.setBundleDescription(project.getName());
清单。挫折杠杆(“2.0”);
manifest.setExportPackagesList(exportPac);
[...]
File manifestFile=新文件(metainfPath,“MANIFEST.MF”);
FileUtils.createFile(manifestFile,manifest.toString());
如果没有完整的pom文件,或者更好的是完整的项目,那么很难看一看。其他一切都是推测性的。@khmarbaise我在第一篇文章中添加了来自Maven项目和Java库项目的完整pom文件
Manifest-Version: 1.0
Bundle-Description: EMFService
Bundle-SymbolicName: com.coig.osgi.emf.providerservice
Built-By: author
Bundle-ManifestVersion: 2
Bnd-LastModified: 1532429067922
Embed-Dependency: emf
Import-Package: javax.persistence;version="[2.2,3)"
DynamicImport-Package: *
Tool: Bnd-1.15.0
Export-Package: com.coig.esb.osgi.emf;uses:="javax.persistence",com.co
ig.esb.osgi.emf
Bundle-Version: 1.0.0
Bundle-Name: EMFService
Bundle-ClassPath: .,emf-1.0.0.jar
Created-By: Apache Maven Bundle Plugin
Build-Jdk: 1.8.0_172
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());