2016-11-10 2 views
4

Eclipse用にmavenを使用して、リモートサーバ上で動作するjarをビルドしています。私のシステムはOS Xを実行しており、サーバはCestOSを実行しています。 プロジェクトの場合はtensorflow libraryが必要です。 Mavenは依存関係を正常に解決し、プロジェクトをローカルで実行することができます。しかし、サーバ上では、デフォルトでmavenにはmacosxバージョンしか含まれていないので、tensorflowライブラリはそこにないというエラーが出ています。ビルド中にlinux版でテンソルフローのmacosx版をmavenに代用させるにはどうすればいいですか?特定のOS用にmavenを使ってjarファイルを作成する方法は?

異なるプラットフォーム用のTensorFlow Javaライブラリはhereです。

P.S.私はすでにシステムスコープがjarを指しているpomに依存関係を追加しようとしました。

+1

あなたはMavenのプロファイルを考慮してみましたか? –

+0

はい、私が使用してみました特定のプロファイルに基づいてアクティブ化する方法に関する情報しか見つかりませんでした現在のOS上にある。私は、別のOSのjarファイルを作成するプロファイルを作成する方法を見つけることができませんでした。 –

+0

エラーをスナップショットできますか?または、ここにエラーログを含めることはできますか? –

答えて

0

はあなたのPOMでこれを試してみてください:

<dependency> 
    <groupId>org.bytedeco.javacpp-presets</groupId> 
    <artifactId>tensorflow</artifactId> 
    <version>0.9.0-1.2</version> 
</dependency> 
<dependency> 
    <groupId>org.bytedeco.javacpp-presets</groupId> 
    <artifactId>tensorflow</artifactId> 
    <version>0.9.0-1.2</version> 
    <classifier>linux-x86_64</classifier> 
</dependency> 

またはその代わりにlinux-x86、あなたのサーバが32ビットである場合。

もちろん、プロファイルに条件付き依存関係を定義するといいでしょう。

0

あなたがリンクしたページのjar名で判断すると、MacOSとLinuxバージョンの違いは、瓶名のversion部分の後のテキストにあります。

これは、classifierMaven coordinates参照)と呼ばれ、アーティファクトバージョンの後に追加の差異を与えるオプションの座標です。

<profiles> 
    <profile> 
     <id>osx</id> 

     <dependency> 
      <groupId>org.bytedeco.javacpp-presets</groupId> 
      <artifactId>tensorflow</artifactId> 
      <version>0.9.0-1.2</version> 
      <classifier>macosx-x86_64</classifier> 
     </dependency> 

    </profile> 

    <profile> 
     <id>linux</id> 

     <dependency> 
      <groupId>org.bytedeco.javacpp-presets</groupId> 
      <artifactId>tensorflow</artifactId> 
      <version>0.9.0-1.2</version> 
      <classifier>linux-x86_64</classifier> 
     </dependency> 

    </profile> 

</profiles> 

そして、あなたのPOMにelsewereすべての関連<dependency>ノードを削除:

はすでにnandsitoによって提案され、その答えに拡大して、これを(テストされていない、私は知っていると私は更新します)してみてください(その結果、<profiles>部分がなければ、tensorflowの依存関係はありません)。この変更後

あなたは、必ずしも(POMにはtensorflow依存性がないように)するたびにプロファイルを指定する必要があります:

CentOSにmvn clean package -Plinuxにパッケージを準備する際のMacOS mvn clean package -Pmacosにパッケージを準備したときにEclipseは、あなたが(あなたがProject explorerでプロジェクトフォルダを右クリックして、このウィンドウに取得することができProject properties>Maven下で活性プロファイルのリストを設定することができます。

関連する問題