2

具体的には、Jython REPL で実験できるように、依存関係のある Datomic (http://www.datomic.com) jar を構築しようとしています。

Datomic は Maven で配布されていませんが、次のように Datomic をダウンロードしてローカルの Maven リポジトリにインストールできます。

mvn install:install-file 
  -DgroupId=com.datomic 
  -DartifactId=datomic 
  -Dfile=datomic.jar 
  -DpomFile=pom.xml

しかし、依存関係を持つ単一のjarとして必要なので、クラスパスに入れてJython REPLから使用できます。

mvn assembly:single依存関係のある jar をビルドしますが、おそらくローカル ファイルであるため、Datomic jar は含まれていません。

行うときにローカルjarをどのように含めますmvn assembly:singleか?

4

2 に答える 2

1

Maven Shade プラグインを使用したほうがよいと思います: http://maven.apache.org/plugins/maven-shade-plugin/

これにより、独自のクラスと依存関係の両方を含む単一のüber-jarを作成できます。

于 2012-04-26T10:01:14.987 に答える
0

jar ファイルをプロジェクトの pom.xml ファイル (依存関係セクション) に追加する限り、jar がローカルにインストールされているかどうかは問題ではありません。

<dependencies>
  ... ...
  <dependency>
    <groupId>com.datomic</groupId>
    <artifactId>datomic</artifactId>
    <version>1.0</version>
  </dependency>
</dependencies>

Maven Assembly Plugin docum jar-with-dependency をチェックしてください:

アンパックされた依存関係とともに、プロジェクトのバイナリ出力を含む JAR を作成するために、アセンブリ プラグイン構成の descriptorRef として jar-with-dependencies を使用します。この組み込み記述子は、JAR アーカイブ形式を使用して、分類子 jar-with-dependencies を持つアセンブリを生成します。

jar-with-dependencies は、uber-jar の基本的なサポートのみを提供することに注意してください。さらに制御するには、Maven Shade Pluginを使用します。

サンプル pom.xml:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.3</version>
  <configuration>
    <descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals><goal>single</goal></goals>
    </execution>
  </executions>
</plugin>
于 2012-04-26T10:54:38.153 に答える