2017-08-03 68 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

相关问题