2016-05-05 11 views
0

地獄すべて、Mavenのレポ、Mavenのプロジェクトに依存関係として使用

まず第一に、私は、Androidで働いていると、それはの使用を自動化することになると私はMavenのビルドプロセスに関するいくつかの質問を持っています私のAndroidプロジェクトのネイティブライブラリ私は現在、ネイティブプロジェクト(repo)をとり、必要な.soファイルを構築することができます(mavenビルドプロセスを通じて).soファイルをコピーして、メインプロジェクトのネイティブlibsフォルダ(mainProject /src/main/libs/armeabi-v7a/nativeLib.so)。だから... ...の.soファイルを蹴る私の母国プロジェクトのpom.xmlは、(エリアを構築する)は、次の

<packaging>so</packaging> 
<properties> 
    <android.ndk.args>V=1 -B NDK_DEBUG=1 -j8</android.ndk.args> 
    <arch>armeabi-v7a</arch> 
    <mavenAntrunPluginVersion>1.8</mavenAntrunPluginVersion> 
</properties> 

<build> 

    <extensions> 
     <extension> 
      <groupId>org.apache.maven.wagon</groupId> 
      <artifactId>wagon-webdav</artifactId> 
      <version>1.0-beta-2</version> 
     </extension> 
    </extensions> 

    <plugins> 

     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>${mavenAntrunPluginVersion}</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <configuration> 
         <tasks> 
          <exec 
            dir="${project.basedir}/src/main/java/com/abc/myClass" 
            executable="javac" 
            failonerror="true"> 
           <arg value="myClass.java"/> 
          </exec> 
          <exec 
            dir="${project.basedir}" 
            executable="javah" 
            failonerror="true"> 
           <arg value="-d"/> 
           <arg value="${project.basedir}/target/jni/include"/> 
           <arg value="-classpath"/> 
           <arg value="${project.basedir}/src/main/java"/> 
           <arg value="com.abc.myClass.MyClass"/> 
          </exec> 
         </tasks> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 

      </executions> 
     </plugin> 

     <plugin> 
      <groupId>com.simpligility.maven.plugins</groupId> 
      <artifactId>android-ndk-maven-plugin</artifactId> 
      <version>1.0.1-SNAPSHOT</version> 
      <extensions>true</extensions> 
      <configuration> 
       <target>${project.artifactId}</target> 
       <finalLibraryName>${project.artifactId}</finalLibraryName> 
       <ndkPath>${android.ndk.path}</ndkPath> 
       <applicationMakefile>src/main/cpp/Application.mk</applicationMakefile> 
       <makefile>src/main/cpp/Android.mk</makefile> 
       <architectures>${arch}</architectures> 
       <additionalCommandline>${android.ndk.args}</additionalCommandline> 
       <librariesOutputDirectory>${project.build.directory}/ndk-libs</librariesOutputDirectory> 
       <objectsOutputDirectory>${project.build.directory}/ndk-obj</objectsOutputDirectory> 
       <headerFilesDirectives> 
        <headerFilesDirective> 
         <directory>${basedir}/src/main/cpp</directory> 
         <includes> 
          <include>**\/*.hpp</include> 
         </includes> 
        </headerFilesDirective> 
       </headerFilesDirectives> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>attach-sources</id> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

だから、これはmyNativeProject /ターゲットにする.soをスロー/ NDK-OBJ/armeabi-のように見えますv7a/nativeLib.so。私は通常これを私のメインプロジェクトにコピーします。私はこのプロジェクトをタイプ.soとの依存関係にしようとしますが、認識しません。これをメインプロジェクトにどのように追加しますか?事前に多くの感謝。

+0

なぜあなたは[android-ndk-maven-plugin](http://simpligility.github.io/android-ndk-maven-plugin/)の 'SNAPSHOT'バージョンを使用していますか?私は、新しいリリースのバージョンを使用することをお勧めします。 – khmarbaise

+0

私はまだプロジェクトを構築できます。私のメインプロジェクトをこれに向ける方法を知る必要があります。 –

答えて

0

さてさて、私は私の.soのアーティファクトを添付する 'ビルドヘルパーのmaven-Plugin' を利用する.soプロジェクトにおけるそこで、基本的

。私の主なプロジェクトでは、.soファイルをネイティブの出力ディレクトリにコピーするために、 'maven-dependency-plugin'を使用しました。詳しい情報が必要な人はコメントしてください。

関連する問題