2013-04-19 4 views
0

Я работаю над небольшим проектом, позволяющим сохранять файлы cookie. Я хочу сделать проект JAR, чтобы другие разработчики могли использовать его в проекте. На данный момент я могу построить проект как APKLIB, но это кажется ненужным, поскольку ресурсы не нужны. Если изменить упаковку JAR я получаю ошибку следовать при построенииКак построить JAR для проекта android

Результатов:

Tests in error:
shouldAddCookie(com.doward.persistantcookietest.PersistantCookieStoreTest): java.lang.ClassNotFoundException: caught an exception while obtaining a class file for com.doward.persistantcookies.R
shouldClearAllCookies(com.doward.persistantcookietest.PersistantCookieStoreTest): java.lang.ClassNotFoundException: caught an exception while obtaining a class file for com.doward.persistantcookies.R
shouldClearExpired(com.doward.persistantcookietest.PersistantCookieStoreTest): java.lang.ClassNotFoundException: caught an exception while obtaining a class file for com.doward.persistantcookies.R

П выглядит следующим образом

<?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.doward</groupId> 
    <artifactId>persistantcookiestore</artifactId> 
    <version>1</version> 
    <packaging>jar</packaging> 
    <name>persistantcookies</name> 

    <dependencies> 
     <dependency> 
      <groupId>org.json</groupId> 
      <artifactId>json</artifactId> 
      <version>20090211</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.pivotallabs</groupId> 
      <artifactId>robolectric</artifactId> 
      <version>1.1</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.8.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>android</groupId> 
      <artifactId>android</artifactId> 
      <version>4.2.2_r2</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <version>3.3.2</version> 
       <configuration> 
        <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> 
        <sdk> 
         <platform>17</platform> 
        </sdk> 
        <undeployBeforeDeploy>true</undeployBeforeDeploy> 
       </configuration> 
       <extensions>true</extensions> 
      </plugin> 

      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

ответ

1

Если вы хотите просто создать JAR файл с .class файлы и никакие ресурсы, например нет XML-файлов releating для макетов, значений, цветов и т.д., то вы можете сделать это из командной строки:

jar -cvf <filenameorjar.jar> <files to be included>

Пример:

jar -cvf cookiepersist.jar com/*

Это создаст файл банки в настоящее время рабочий каталог и включить все файлы .class из каталога com в настоящий рабочий каталог.

+0

спасибо, приятно знать. Но я надеялся использовать maven для этого, чтобы я мог автоматизировать процесс сборки, а также сделать доступным для других разработчиков использование –

0

Если у вас есть проект andorid, и вы хотите использовать его в другом проекте, вы можете сделать проект как проект библиотеки и передать его в другом проекте Android. Сюда могут входить и ваши ресурсы.

http://developer.android.com/tools/projects/projects-eclipse.html

Вы экспортировать служебные классы, которые не относятся к ресурсам андроид т.е. чистых классов Java. Если вы используете затмение вы можете посмотреть на учебник ниже

http://androiddevelopement.blogspot.in/2011/01/creating-jar-file-in-eclipse.html

+0

Я пытаюсь сделать это с помощью maven. Я использую sharedpreferences для хранения файлов cookie, поэтому есть зависимости от классов android. –

+0

Ok. Обычно мы используем eclipse как инструмент. Однако я не использовал maven. – Raghunandan

+0

хорошо, я надеюсь сделать это доступным для других разработчиков. Maven - это самый простой способ использования других библиотек в рамках проекта. Также я хочу, чтобы модульные тесты выполнялись до сборки –

Смежные вопросы