2012-05-13 10 views
0

私は、mavenアセンブリパッケージを使用して単一のモノリシックなjarファイルを作成しました。データ核パッケージが含まれていますが、OSGI構造(plugins.xml & META-INF/META-INF.MD)を維持していないため、エラーが発生しています。 stackoverflow([question]:Datanucleus, JDO and executable jar - how to do it?)の答えは、単一のデプロイ可能なjarの作成方法に関する回答を提供していません。Datanuclear JDO in maven assembly jar

OSGIの構造を保証するために私が使用できるmavenディレクティブは誰にでも分かりますか?

答えて

1

問題は、すべてをモノリシックなjarファイルにまとめるということは、OSGI構造が他のjarファイルのOSGI構造によって上書きされるということです。モノリシック瓶の利益(私は、サーバーにプッシュするカピストラーノを使用していたので)必要なサーバにプッシュする1つのファイルを持っていたではなく

は代わりに、それだけで、最終的なビルドディレクトリにjarファイルをコピーする方が簡単です。

https://devcenter.heroku.com/articles/java

<?xml version="1.0" encoding="UTF-8"?> 
<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/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.example</groupId> 
<version>1.0-SNAPSHOT</version> 
<artifactId>helloworld</artifactId> 
<dependencies> 
    <dependency> 
     <groupId>org.eclipse.jetty</groupId> 
     <artifactId>jetty-servlet</artifactId> 
     <version>7.6.0.v20120127</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.4</version> 
      <executions> 
       <execution> 
        <id>copy-dependencies</id> 
        <phase>package</phase> 
        <goals><goal>copy-dependencies</goal></goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
</project> 
+0

正しい答え:HerokuののJavaセットアップは、この完璧な例を持っています!人々は時々、これらのモノリシックな瓶(時にはウベルジャスと呼ばれる)を作ることに非常に熱心ですが、これに関連するすべての落とし穴があります。別のjar(またはWARなどのコンテナにパックされている多くのjar)としてデプロイできる場合は、それを行う方がはるかに良い方法です。 –

関連する問題