Я немного новичок в Java, и очень плохо знаком с Maven.Я мог бы использовать некоторую терминологию несовершенно.
Поскольку я разрабатываю свой проект, который я использую, для сборки использую maven, так как мне нужны классы, которые не являются частью основного языка Java, я добавил соответствующий<dependency>
раздел моего pom.xml
(обычно копируется с mvnbrowser.com, но я не очень хорошо понимаю его), и я смог использовать нужные мне классы.Отлично работает.
Теперь я столкнулся с Java-классом, который я хочу использовать, который, по-видимому, недоступен в артефакте maven.Это com.android.sdklib.build.ApkBuilder
, который распространяется с Android SDK.Я написал отдельную Java-программу, чтобы заставить мой код работать;Я компилирую это с javac
, а не с Maven, и это прекрасно работает.Для этого я помещаю jar-файл, содержащий нужный мне класс sdklib.jar
, в мой каталог jre/lib/ext
(/usr/local/jdk1.6.0/jre/lib/ext
на машине с FreeBSD), и моя строка import com.android.sdklib.build.ApkBuilder
прекрасно компилируется, и я могу сослаться на ApkBuilder
и используйте его без проблем.
Теперь, когда я скопировал свой рабочий код в свой проект maven и попытался построить с mvn project
, я получаю package com.android.sdklib.build does not exist
ошибок в строке импорта и cannot find symbol: class ApkBuilder
ошибки, где я ссылаюсь на ApkBuilder
.
Осматривая сеть, я нашел android-maven-plugin
здесь: http://code.google.com/p/maven-android-plugin/. Это отсылало меня к maven-android-sdk-deployer
здесь: https://github.com/mosabua/maven-android-sdk-deployer. ЭтиСначала это звучало многообещающе, но, насколько я могу судить, их цель - разработка приложений для Android с использованием maven, а это не то, что я пытаюсь сделать.Я просто хочу, чтобы моя Java-программа манипулировала файлами Android apk
, но сама моя Java-программа не должна запускаться на устройстве Android.Кроме того, Android SDK предназначен для работы с Linux, а не с FreeBSD, которую я использую, поэтому я не могу следовать инструкциям по установке maven-android-sdk-deployer
.Я также нашел артефакт под названием maven-apkbuilder-plugin
, но, похоже, он также предназначен для создания приложений для Android, и я не видел документации для него.Так что я не преследовал эти выводы.
Кажется, проще всего было бы просто заставить компилятор искать в моей папке jre/lib/ext
файл sdklib.jar
при запуске mvn package
.Но, возможно, это не тот путь.Или, может быть, я могу внести простое изменение в pom.xml
, которое заставит компилятор найти sdklib.jar
.Я посмотрел документацию по pom http://maven.apache.org/pom.html#Build_Settings,, но не нашел способа сделать это.В любом случае, я уверен, что есть хотя бы одно решение;Я просто не знаю (пока).
Какие у меня варианты?Как лучше всего использовать класс ApkBuilder
в моем проекте, построенном на Maven?Что я должен был прочитать, что позволило бы мне самому ответить на этот вопрос?Спасибо !!