2017-08-03 123 views
1

我已經成功安裝了JAR到Maven的本地倉庫。編輯我的pom.xml包括這些行:Maven - 如何更改pom.xml以將jar安裝到本地repo中?

<dependency> 
    <groupId>org.jcrontab</groupId> 
    <artifactId>jcrontab</artifactId> 
    <version>4.0.0</version> 
    <scope>system</scope> 
    <systemPath>[somepath]/jcrontab-4.0.0.jar</systemPath> 
</dependency> 

但是,隨着install:install-file安裝後,我覺得這些線是多餘的。我只是用它們來安裝,當我想「使用」這個jar時,它們是無用的,因爲這個jar在本地回購。

所以我把它們改成:

<dependency> 
    <groupId>org.jcrontab</groupId> 
    <artifactId>jcrontab</artifactId> 
    <version>4.0.0</version> 
</dependency> 

相同的形式,那些存在於遠程Maven中央回購的依賴。但現在的Eclipse抱怨:

missing artifact: org.jcrontab:jcrontab:jar:4.0.0 

而在Maven依賴庫Java構建路徑,我看到紅十字會的罐子,說:

jcrontab-4.0.0.jar - d: \ DESARROLLO \ Eclipse的JEE-MARS-x86_64的\日食\ $ {maven.home} \平方米\庫\組織\ jcrontab \ jcrontab \ 4.0.0(失蹤)

在這個目錄,我只看到:

jcrontab-4.0.0.jar.lastUpdated jcrontab-4.0.0.pom.lastUpdated 

而且沒有罐子是存在的。但是這個Eclipse回購庫中的其他依賴關係罐在他們的位置。

當我檢查我的Maven家回購(<maven-installation-dir>/m2/repository),罐安裝在那裏。但在Eclipse目錄下的回購中,該jar缺失。

我很困惑。

  1. 如果外部JAR安裝產生下Maven安裝回購一個JAR,爲什麼月食「Maven依賴」庫點下的Eclipse目錄回購? {$maven.home}目錄對我來說很不好。

  2. 我應該更改本地安裝罐子的依賴就像我做了什麼?


如所建議的,我執行安裝的命令:安裝文件,和獲取:

C:\Windows\System32>mvn install:install-file -Dfile="D:\desarrollo\Java environment\lib\jcrontab-4.0.0.jar" -DgroupId=org.jcronta 
b -DartifactId=jcrontab -Dversion=4.0.0 -Dpackaging=jar 
[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Maven Stub Project (No POM) 1 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ standalone-pom --- 
[INFO] Installing D:\desarrollo\Java environment\lib\jcrontab-4.0.0.jar to D:\desarrollo\Java environment\lib\Maven\apache-maven-3.5.0\bin\..\m2\repository\org\jcrontab\jcrontab\4.0.0\jcrontab-4.0.0.jar 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 0.597 s 
[INFO] Finished at: 2017-08-03T14:27:48+02:00 
[INFO] Final Memory: 6M/114M 
[INFO] ------------------------------------------------------------------------ 

回答

0

相同的形式的那些存在於遠程Maven中央依賴性回購。

但jcrontab沒有Maven的中央存在。

看到自己的行家中心:https://search.maven.org/#search|ga|1|jcrontab

所以,你需要的jar安裝到你的本地庫,如果你想使用它像其他的依賴。你可以這樣做是:

mvn install:install-file -Dfile=jcrontab-4.0.0.jar -DgroupId=org.jcrontab -DartifactId=jcrontab -Dversion=4.0.0 -Dpackaging=jar 

參見Maven的文檔在這裏:https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

+0

所以,首先,我不應該改變我的pom.xml,因爲如果我編輯其他人,它會只解決遠程回購,並沒有辦法解決本地回購,對吧?但是我認爲在我的最終pom.xml中添加「install-file」部分是醜陋的......我該如何解決以及針對本地回購? – FaithReaper

+0

maven首先從本地回購解決了依賴關係,如果不是從maven central(或其他配置的maven庫)提供的話。但是你可以使用標誌-o(離線)來強制maven只從本地存儲庫解析。 在這裏,你的問題是你沒有把jar放到你的本地倉庫 – Prim

+0

謝謝。但是我已經將它安裝到maven本地回購庫中,正如我在OP的第一行所述。罐子在那裏。但Eclipse似乎無法找到它。 – FaithReaper

相關問題