簡體   English   中英

使用外部jar文件(不在maven工件中)編譯maven項目

[英]Compiling a maven project with class from external jar file (that is not in a maven artifact)

我對java很新,對maven來說很新。 我可能會使用一些術語不完美。

當我開發我的項目時,我正在使用maven來構建,因為我需要的類不是核心java語言的一部分,我已經在我的pom.xml添加了一個適當的<dependency>部分(通常是從mvnbrowser.com沒有我真正理解它,並且我已經能夠使用我想要的類。 效果很好。

現在我遇到了一個我想要使用的java類,它顯然在maven工件中不可用。 這是與android SDK一起發布的com.android.sdklib.build.ApkBuilder 我寫了一個獨立的java程序來讓我的代碼工作; 我用javac而不是用maven編譯它,這很好。 為此,我將包含我想要的類的jar文件sdklib.jar放入我的jre/lib/ext目錄(FreeBSD機器上的/usr/local/jdk1.6.0/jre/lib/ext ),以及我的import com.android.sdklib.build.ApkBuilder行編譯得很好,我可以參考ApkBuilder並使用它沒有問題。

現在,當我將我的工作代碼復制到我的maven項目中,並嘗試用mvn project構建時,我得到的package com.android.sdklib.build does not exist在導入行上package com.android.sdklib.build does not exist錯誤,並且cannot find symbol: class ApkBuilder錯誤我在哪里參考ApkBuilder

環顧網絡,我在這里找到了android-maven-pluginhttp//code.google.com/p/maven-android-plugin/ 它在這里提到了maven-android-sdk-deployerhttps//github.com/mosabua/maven-android-sdk-deployer 這些導致一開始聽起來很有希望,但據我所知,他們的目的是使用maven開發android應用程序,這不是我想要做的。 我只是想讓我的java程序操縱android apk文件,但我的java程序本身不能在Android設備上運行。 此外,Android SDK是用於Linux,而不是我正在使用的FreeBSD,因此我無法按照maven-android-sdk-deployer的安裝說明進行操作。 我還發現了一個名為maven-apkbuilder-plugin的工件,但這似乎也是為了創建android應用程序,我沒有看到它的文檔。 所以我沒有追求這些線索。

看起來最簡單的事情就是讓編譯器在運行mvn package時查看我的jre/lib/ext文件夾中的sdklib.jar文件。 但也許這不是要走的路。 或者也許我可以對我的pom.xml進行一個簡單的更改,這將導致編譯器找到sdklib.jar 我查看了http://maven.apache.org/pom.html#Build_Settings上的pom文檔,但沒有看到這樣做的方法。 無論如何,我確信至少有一個解決方案; 我還不知道(還)。

我有什么選擇? 在我的maven構建的項目中使用ApkBuilder類的最佳方法是什么? 我應該閱讀什么才能讓我自己回答這個問題? 謝謝!!

如果您只是嘗試引用jar,最簡單的解決方案可能是手動將jar添加到本地存儲庫。 詳情請見此處

概括地說:

mvn install:install-file       \
    -Dfile=<path-to-file>      \
    -DgroupId=<group-id>       \
    -DartifactId=<artifact-id> \
    -Dversion=<version>        \
    -Dpackaging=jar

可以使用任何您想要的group-idartifact-idversion ,但它們應該是類似於您在回購中可用時所期望的東西。

由於您實際上並未創建Android項目,因此這可能就足夠了。


以下是我會問這個問題的方法。

如何在Maven構建中使用Maven存儲庫中沒有的庫?

(巧合的是,那個,以及更短的變化,應該提出你應該閱讀的鏈接,回答你的最后一個問題:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM