[英]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丢失了。
我很困惑。
如果外部jar的安装在Maven安装存储库下生成JAR,为什么Eclipse“ Maven依赖项”库指向Eclipse目录下的存储库? {$maven.home}
目录对我来说很不好。
我是否应该像我一样更改本地安装的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.