我试图添加log4j滚动appender库作为我的应用程序中的依赖项。罐子可以在这里买到:
https://mvnrepository.com/artifact/uk.org.simonsite/log4j-rolling-appender/
我在下面的代码片断中添加了以下2pom.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以下载不正确的依赖项(尽管根据标准,它是正确的,但在我的情况下是不正确的):
https://mvnrepository.com/artifact/uk/org/simonsite/log4j-rolling-appender/20131024-2017/log4j-rolling-appender-20131024-2017.pom
注意groupId(uk.org.simonsite)中提到的包是如何转换为URL(../uk/org/simonsite/)中的包层次结构的。
我希望maven生成的JAR的URL是:
https://mvnrepository.com/artifact/uk.org.simonsite/log4j-rolling-appender/20131024-2017/log4j-rolling-appender-20131024-2017.pom
有人能提供一些建议,说明我如何指导maven在生成URL时跳过此转换?
如果您使用了多个依赖项,那么您应该尝试使用注释包装所有依赖项。
还应遵循以下模式:
<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>
范围系统的依赖项始终可用,并且不会在存储库中查找。始终先使用依赖项,然后再按顺序使用存储库。
Maven存储库具有用于解析Maven坐标的固定格式。
在起始URL之后,是带有/
的groupId,而不是
,然后是artifactId,然后是版本,然后是包含artifactId、版本、分类器(如果存在)和扩展名的文件名。
如果要从不同的URL绘制jar,那么此URL不是Maven存储库。您应该首先下载jar并将其安装到您的公司存储库(或者您自己的本地存储库,如果没有其他可用的话)。
我不断得到原因:java.nio.file.nosuchfileException:C:\Program Files\Apache Software Foundation\Tomcat 9.0\WTPWebApps\WebApp\WEB-INF\lib\Jackson-DataBind-2.9.6.jar Exception。我的pom.xml文件中有2.9.6版本的依赖项,但Maven depe
问题内容: 有没有一种方法可以强制maven(2.0.9)将所有依赖项包含在单个jar文件中? 我有一个构建到单个jar文件中的项目。我希望将依赖项中的类也复制到jar中。 更新:我知道我不能只在jar文件中包含jar文件。我正在寻找一种方法来解压缩指定为依赖项的jar,并将类文件打包到我的jar中。 问题答案: 你可以使用带有描述符的插件来执行此操作。这是我们之一的相关块,它可以完成此任务:
问题内容: 我想使用maven shade创建一个有阴影的jar,但我也想仅在有阴影的jar的情况下才包含一个特殊的依赖项(而不是在我项目的普通编译依赖项中)。我该怎么办? 根据我的理解,包含/排除项只是白名单/黑名单,因此我无法明确强制要包含的内容未包含在实际依赖项列表中。 对于更多上下文,我有一个JAR依赖项,其中包含只希望包含在我的一个阴影工件中的资源,但是如果在类路径中使用该jar会导致错
根据我的理解,包含/排除只是白名单/黑名单,所以我不能显式地强制包含一些没有包含在实际依赖列表中的内容。 为了获得更多的上下文,我有一个JAR依赖项,它包含一个资源,我只希望它包含在我的shade工件中,但是在类路径上使用该JAR会导致错误。 明确地说,我希望在一个调用中生成一个带有附加依赖项的阴影jar,以及一个没有附加依赖项的普通jar。
主要内容:依赖声明,获取依赖坐标Maven 是一款优秀的依赖管理工具,那么什么是依赖呢? 通俗的说,如果一个 Maven 构建所产生的构件(例如 Jar 文件)被其他项目引用,那么该构件就是其他项目的依赖。 依赖声明 Maven 坐标是依赖的前提,所有 Maven 项目必须明确定义自己的坐标,只有这样,它们才可能成为其他项目的依赖。当一个项目的构件成为其他项目的依赖时,该项目的坐标才能体现出它的价值。 当 Maven 项目需要声
Gradle 支持从 Maven 或 Ivy 仓库中拉取依赖文件。首先必须将仓库添加到列表中,然后必须在 dependencies 中添加 Maven 或 Ivy 声明的包。 repositories { jcenter() } dependencies { compile 'com.google.guava:guava:18.0' } android { ... } 注意