打包maven项目jboss fuse
packaging maven project jboss fuse
在我的项目中,我连接到一个 mysql 数据库。要在 jboss fuse 上部署我的 jar,我需要将 mysql-connector-java 添加到部署文件夹。您知道如何打包我的项目以交付单个 jar 吗?
要在您的包中嵌入一个 jar,请执行以下操作:
1) 将其声明为依赖项
<dependencies>
<dependency>
<groupId>com.your.company</groupId>
<artifactId>your-needed-jar</artifactId>
<version>1.3.4</version>
</dependency>
<dependencies>
2) 告诉 maven-bundle-plugin 嵌入它。
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.0.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Embed-Dependency>your-needed-jar</Embed-Dependency>
<Import-Package>
eventually.unneded.pkg;resolution:="optional",
*
</Import-Package>
<Export-Package>
com.your.company.app.exportedpkg
</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
虽然这在一般情况下有效,但可能存在 class 库的加载问题,这些库执行大量运行时 class 代理和 class 生成(如 ORM)。
恕我直言,更好的方法是让库从 JBoss Fuse 本身可用。为此:
1) 复制mysql-connector-java-xxx.java
到JBossFuse lib/目录
2) 在 JBoss etc/ Fuse 目录
中编辑 config.properties
3) 添加 com.mysql.jdbc
包到列表
org.osgi.framework.system.packages= \
...
org.apache.karaf.diagnostic.core;version="2.4.0.redhat-621084", \
com.mysql.jdbc;version="xxx", \
现在您不需要将库嵌入到您的包中,您可以直接导入它。系统包 (ID:0) 正在导出它。
为了进一步参考,此 PDF 文档可能会提供有用的信息:Red Hat JBoss Fuse 6.2 Managing OSGi Dependencies
在我的项目中,我连接到一个 mysql 数据库。要在 jboss fuse 上部署我的 jar,我需要将 mysql-connector-java 添加到部署文件夹。您知道如何打包我的项目以交付单个 jar 吗?
要在您的包中嵌入一个 jar,请执行以下操作:
1) 将其声明为依赖项
<dependencies>
<dependency>
<groupId>com.your.company</groupId>
<artifactId>your-needed-jar</artifactId>
<version>1.3.4</version>
</dependency>
<dependencies>
2) 告诉 maven-bundle-plugin 嵌入它。
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.0.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Embed-Dependency>your-needed-jar</Embed-Dependency>
<Import-Package>
eventually.unneded.pkg;resolution:="optional",
*
</Import-Package>
<Export-Package>
com.your.company.app.exportedpkg
</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
虽然这在一般情况下有效,但可能存在 class 库的加载问题,这些库执行大量运行时 class 代理和 class 生成(如 ORM)。
恕我直言,更好的方法是让库从 JBoss Fuse 本身可用。为此:
1) 复制mysql-connector-java-xxx.java
到JBossFuse lib/目录
2) 在 JBoss etc/ Fuse 目录
中编辑 config.properties
3) 添加 com.mysql.jdbc
包到列表
org.osgi.framework.system.packages= \
...
org.apache.karaf.diagnostic.core;version="2.4.0.redhat-621084", \
com.mysql.jdbc;version="xxx", \
现在您不需要将库嵌入到您的包中,您可以直接导入它。系统包 (ID:0) 正在导出它。
为了进一步参考,此 PDF 文档可能会提供有用的信息:Red Hat JBoss Fuse 6.2 Managing OSGi Dependencies