繁体   English   中英

Maven-如何更改pom.xml以使用安装到本地存储库中的jars?

[英]Maven - how to change pom.xml to use jars installed into local repo?

我已成功将JAR安装到Maven本地存储库中。 我编辑pom.xml以包括以下几行:

<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

在Java Build路径的Maven依赖库中,我在jar上看到红叉,说:

jcrontab-4.0.0.jar-D:\\ desarrollo \\ eclipse-jee-mars-x86_64 \\ eclipse \\ $ {maven.home} \\ m2 \\ repository \\ org \\ jcrontab \\ jcrontab \\ 4.0.0(缺少)

在此目录下,我只会看到:

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

而且那里没有罐子。 但是此Eclipse存储库中的其他依赖项jar仍在它们的位置。

当我检查我的Maven主<maven-installation-dir>/m2/repository<maven-installation-dir>/m2/repository )时,该jar已安装在那里。 但是在Eclipse目录下的回购中,jar丢失了。

我很困惑。

  1. 如果外部jar的安装在Maven安装存储库下生成JAR,为什么Eclipse“ Maven依赖项”库指向Eclipse目录下的存储库? {$maven.home}目录对我来说很不好。

  2. 我是否应该像我一样更改本地安装的jar的依赖关系?


根据建议,我执行install:install-file命令,并得到:

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] ------------------------------------------------------------------------

与远程Maven中央存储库中存在的依赖项相同的形式。

但是jcrontab在maven Central中不存在。

在Maven Central上见自己: https ://search.maven.org/#search | ga | 1 | jcrontab

因此,如果您想像其他依赖一样使用jar,则需要将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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM