2013年4月25日木曜日

eclipse ADT で、jar ファイルの依存関係をコントロールする。

 プロジェクトの規模が大きくなってくると、パッケージを分離してライブラリを再利用する事になると思います。 ところが、この依存関係の設定の自由度が低くて頭にきます。  今回は、Android プロジェクトで、jar ファイルの依存関係をコントロールする方法を書きます。 プロジェクト・ディレクトリ直下にある .project という XML ファイルを開きます。 そして、linkedResources 要素の下に link 要素を追加、または、修正します。  $%7BPARENT-2-PROJECT_LOC%7D という怪しい呪文に関しては、こちらを参考にしてください。 こんな感じです。
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
 <name>YourApplicationProject</name>
 <comment></comment>
 <projects>
 </projects>
 <buildSpec>
  <buildCommand>
   <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
   <triggers>clean,full,incremental,</triggers>
   <arguments>
    <dictionary>
     <key>?children?</key>
     <value>?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|\||</value>
    </dictionary>
    <dictionary>
     <key>?name?</key>
     <value></value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.append_environment</key>
     <value>true</value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.buildArguments</key>
     <value></value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.buildCommand</key>
     <value>ndk-build</value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
     <value>clean</value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.contents</key>
     <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
     <value>false</value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
     <value>true</value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.enableFullBuild</key>
     <value>true</value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.stopOnError</key>
     <value>true</value>
    </dictionary>
    <dictionary>
     <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
     <value>true</value>
    </dictionary>
   </arguments>
  </buildCommand>
  <buildCommand>
   <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
   <arguments>
   </arguments>
  </buildCommand>
  <buildCommand>
   <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
   <arguments>
   </arguments>
  </buildCommand>
  <buildCommand>
   <name>org.eclipse.jdt.core.javabuilder</name>
   <arguments>
   </arguments>
  </buildCommand>
  <buildCommand>
   <name>com.android.ide.eclipse.adt.ApkBuilder</name>
   <arguments>
   </arguments>
  </buildCommand>
  <buildCommand>
   <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
   <triggers>full,incremental,</triggers>
   <arguments>
   </arguments>
  </buildCommand>
 </buildSpec>
 <natures>
  <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
  <nature>org.eclipse.jdt.core.javanature</nature>
  <nature>org.eclipse.cdt.core.cnature</nature>
  <nature>org.eclipse.cdt.core.ccnature</nature>
  <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
  <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
 </natures>
 <linkedResources>
  <link>
   <name>libs/acra-4.3.0.jar</name>
   <type>1</type>
   <locationURI>$%7BPARENT-2-PROJECT_LOC%7D/Ref/Java/acra-4.3.0.jar</locationURI>
  </link>
  <link>
   <name>libs/android-support-v4.jar</name>
   <type>1</type>
   <locationURI>$%7BPARENT-2-PROJECT_LOC%7D/Ref/Java/android-support-v4.jar</locationURI>
  </link>
  <link>
   <name>libs/calc.jar</name>
   <type>1</type>
   <locationURI>$%7BPARENT-2-PROJECT_LOC%7D/Ref/Java/calc.jar</locationURI>
  </link>
 </linkedResources>
</projectDescription>

0 件のコメント: