我正在尝试在应用程序中添加log4j-rolling-appender库作为依赖项。罐子在这里可用:
https://mvnrepository.com/artifact/uk.org.simonsite/log4j-rolling-appender/
我在pom.xml中添加了以下两件事(存储库和jar规范)。下面的代码段:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
...
...
<repositories>
<repository>
<id>log4j-appender</id>
<name> Repository for log4j-rolling-appender</name>
<url>https://mvnrepository.com/artifact/</url>
</repository>
</repositories>
<dependency>
<groupId>uk.org.simonsite</groupId>
<artifactId>log4j-rolling-appender</artifactId>
<version>20131024-2017</version>
</dependency>
...
...
</project>
在构建时,maven生成以下URL来下载不正确的依赖项(尽管按照标准,这是正确的,但就我而言是不正确的):
请注意如何将groupId(uk.org.simonsite)中提到的软件包转换为URL(../uk/org/simonsite/)中的软件包层次结构。
可以找到JAR并希望Maven生成的URL是:
有人可以提供有关我如何指示Maven在生成URL时跳过此转换的任何建议吗?
答案 0 :(得分:1)
Maven存储库具有用于解析Maven坐标的固定格式。
在起始URL之后,有一个cat1
而不是cat2
的groupId,然后是artifactId,然后是版本,然后是包含artifactId,版本,分类符(如果存在)和扩展名的文件名
如果要从其他URL绘制jar,则该URL不是Maven存储库。您应该先下载jar,然后将其安装到公司存储库(或您自己的本地存储库,如果没有其他可用的存储库)。
答案 1 :(得分:-1)
如果您使用了多个依赖项,则应尝试使用注释包装所有依赖项。
也请遵循以下模式:
<project>
<dependency>
<groupId>group-a</groupId>
<artifactId>artifact-b</artifactId>
<version>1.0</version>
<type>bar</type>
<scope>runtime</scope>
</dependency>
<repositories>
<repository>
<id>my-internal-site</id>
<url>http://myserver/repo</url>
</repository>
</repositories>
...
</project>
与作用域系统的依赖关系始终可用,不会在存储库中查找。总是先使用依赖项,然后再按顺序使用存储库。