Maven 2 在开发的实验/快速而粗糙的模型阶段让我抓狂。我有一个 pom.xml 文件,它定义了我想要使用的 web 应用程序框架的依赖项,一个……
Maven 2 在开发的实验/快速而粗糙的模型阶段让我抓狂。
我有一个 pom.xml
文件,它定义了我想使用的 Web 应用框架的依赖项,我可以从该文件快速生成入门项目。但是,有时我想链接到尚未定义文件的第三方库 pom.xml
,因此,与其 pom.xml
手动创建第三方库的文件并安装它,然后将依赖项添加到我的 pom.xml
,我只想告诉 Maven:\“除了我定义的依赖项之外, /lib
还包括其中的任何 jar。\”
这看起来应该很简单,但如果是这样,我就忽略了一些东西。
任何关于如何做到这一点的指示都将不胜感激。除此之外,如果有一个简单的方法可以将 maven 指向一个 /lib
目录,并轻松创建一个 pom.xml
将所有附带的 jar 映射到单个依赖项的目录,然后我可以一次性命名/安装并链接到该目录,这也就足够了。
这就是我所做的,它也可以解决包问题,并且可以与签出的代码一起使用。
我在项目中创建了一个新文件夹 repo
,但请随意使用 src/repo
在我的 POM 中,我有一个不在任何公共 Maven 存储库中的依赖项
<dependency>
<groupId>com.dovetail</groupId>
<artifactId>zoslog4j</artifactId>
<version>1.0.1</version>
<scope>runtime</scope>
</dependency>
然后我创建了以下目录 repo/com/dovetail/zoslog4j/1.0.1
并将 JAR 文件复制到该文件夹中。
我创建了以下 POM 文件来表示下载的文件(此步骤是可选的,但它会删除一个警告)并帮助下一个人弄清楚我从哪里获得该文件。
<?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>
<groupId>com.dovetail</groupId>
<artifactId>zoslog4j</artifactId>
<packaging>jar</packaging>
<version>1.0.1</version>
<name>z/OS Log4J Appenders</name>
<url>http://dovetail.com/downloads/misc/index.html</url>
<description>Apache Log4j Appender for z/OS Logstreams, files, etc.</description>
</project>
我创建的两个可选文件是 POM 和 JAR 的 SHA1 校验和,用于删除缺失的校验和警告。
shasum -b < repo/com/dovetail/zoslog4j/1.0.1/zoslog4j-1.0.1.jar \
> repo/com/dovetail/zoslog4j/1.0.1/zoslog4j-1.0.1.jar.sha1
shasum -b < repo/com/dovetail/zoslog4j/1.0.1/zoslog4j-1.0.1.pom \
> repo/com/dovetail/zoslog4j/1.0.1/zoslog4j-1.0.1.pom.sha1
最后,我将以下片段添加到我的 pom.xml 中,以便我引用本地存储库
<repositories>
<repository>
<id>project</id>
<url>file:///${basedir}/repo</url>
</repository>
</repositories>