使用this tutorial,我试图在GitHub上托管一个依赖项,然后在一个单独的应用程序中使用该依赖项。
依赖项位于:
https://github.com/user/repo/raw/master/release/tld/company/app/1.0.0/app-1.0.0.jar
然而。 maven一直坚持:
https://github.com/user/repo/raw/master/release/tld/company/app/app/1.0.0/app-1.0.0.pom
在我称之为依赖关系的pom中,我有:
<repositories>
<repository>
<id>tld.company</id>
<name>app</name>
<url>https://github.com/user/repo/raw/master/release/</url>
</repository>
</repositories>
和
<dependency>
<groupId>tld.company.app</groupId>
<artifactId>app</artifactId>
<version>1.0.0</version>
</dependency>
在 /master/company/release/tld/company/app/maven-metadata-local.xml 中,我有:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>tld.company.app</groupId>
<artifactId>app</artifactId>
<versioning>
<release>1.0.0</release>
<versions>
<version>1.0.0</version>
</versions>
<lastUpdated>20160233354414</lastUpdated>
</versioning>
</metadata>
在 /master/company/release/tld/company/app/1.0.0/app-1.0.0.pom 中,我有:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>tld.company.app</groupId>
<artifactId>app</artifactId>
<version>1.0.0</version>
<description>POM was created from install:install-file</description>
</project>
依赖关系下载网址中额外/app
的原因是什么?
答案 0 :(得分:1)
组ID应为tld.company
,而不是tld.company.app
。这解释了您的第二个app
。
<dependency>
<groupId>tld.company</groupId>
<artifactId>app</artifactId>
<version>1.0.0</version>
</dependency>
基本上,如果您拥有来自以下表单的存储库的URL,Maven就会理解这一点:
https://someserver.com/.../tld/company/app/1.0.0/app-1.0.0.jar
^---------^ ^-^ ^---^ ^-----------^
groupId | version file name
artifactId
${artifactId}-${version}
。