Jestem trochę nowy w Javie i bardzo nowy w maven. Mogę niedokładnie posługiwać się terminologią.Kompilowanie projektu maven z klasy z zewnętrznego pliku jar (który nie jest w artefakcie maven)
W miarę rozwijania mojego projektu, którego używam, używam programu maven do tworzenia, ponieważ potrzebowałem klas, które nie są częścią podstawowego języka Java, dodałem odpowiednią sekcję <dependency>
do mojego pom.xml
(zwykle skopiowanego z mvnbrowser.com bez mojego bardzo dobrego zrozumienia) i mogłem korzystać z zajęć, które chcę. Działa świetnie.
Teraz natknąłem się na klasę języka Java, której chcę użyć, która najwyraźniej nie jest dostępna w artefakcie maven. Jest to com.android.sdklib.build.ApkBuilder
, który jest dystrybuowany z Androidem SDK. Napisałem samodzielny program java, aby mój kod działał; Kompiluję go z javac
, a nie z mavenem, i to działa dobrze. W tym celu umieściłem plik jar zawierający żądaną klasę, sdklib.jar
, w moim katalogu jre/lib/ext
(/usr/local/jdk1.6.0/jre/lib/ext
na komputerze FreeBSD), a moja linia import com.android.sdklib.build.ApkBuilder
kompiluje się dobrze i mogę odnieść się do ApkBuilder
i używać go bez żadnych problemów.
Teraz, kiedy kopiowane mój kod pracy w moim projekcie maven, i starał się budować z mvn project
, mam package com.android.sdklib.build does not exist
błędy na linii importować, a cannot find symbol: class ApkBuilder
błędy gdzie odsyłam do ApkBuilder
.
Przeglądając sieć, znalazłem android-maven-plugin
tutaj: http://code.google.com/p/maven-android-plugin/. Odesłał mnie do maven-android-sdk-deployer
tutaj: https://github.com/mosabua/maven-android-sdk-deployer. Na początku te prelekcje brzmiały obiecująco, ale o ile wiem, ich celem jest tworzenie aplikacji na Androida za pomocą maven, co nie jest tym, co próbuję zrobić. Po prostu chcę, aby mój program java manipulował plikami Android apk
, ale mój program java nie jest uruchamiany na urządzeniu z Androidem. Ponadto Android SDK jest przystosowany do pracy z linuxem, a nie z FreeBSD, którego używam, więc nie mogę wykonać instrukcji instalacji dla maven-android-sdk-deployer
. Znalazłem też artefakt o nazwie maven-apkbuilder-plugin
, ale wydaje się, że jest to również przeznaczone do tworzenia aplikacji na Androida i nie widziałem dla niego dokumentacji. Więc nie dążyłem do tych tropów.
Wydaje się, że najłatwiej byłoby po prostu, żeby kompilator, aby spojrzeć w moim folderze jre/lib/ext
dla pliku sdklib.jar
gdy uruchomiony mvn package
. Ale może to nie jest droga. A może jest prosta zmiana, którą mogę wprowadzić do mojego pom.xml
, która spowoduje, że kompilator znajdzie sdklib.jar
. Spojrzałem na dokumentację pom na http://maven.apache.org/pom.html#Build_Settings, ale nie widziałem sposobu, aby to zrobić. W każdym razie, jestem pewien, że istnieje przynajmniej jedno rozwiązanie; Po prostu tego nie wiem (jeszcze).
Jakie są moje opcje? Jaki jest najlepszy sposób korzystania z klasy ApkBuilder
w moim stworzonym przez maven projekcie? Co powinienem przeczytać, co pozwoliłoby mi odpowiedzieć na to pytanie osobiście? Dzięki!!
Masz poprawnie zidentyfikować źródło problemu - JAR brakuje w ścieżce klas. Zasilanie "jre/lib/ext" nie jest idealne. Spróbuj poznać niektóre narzędzia programistyczne Maven + Android (nie wiem nic na temat Androida). M2e-Android (http://rgladwell.github.com/m2e-android/) wydaje się intrygujący. Twierdzi, że "przenosi moc zarządzania zależnością Mavena do ADT" –