如何在 maven jar 构建过程中包含外部 jar?
Posted
技术标签:
【中文标题】如何在 maven jar 构建过程中包含外部 jar?【英文标题】:How to include external jars in maven jar build process? 【发布时间】:2012-09-12 08:50:20 【问题描述】:我想在 maven 中构建一个带有依赖项的 .jar 文件。不幸的是,我必须在构建路径中包含一些外部 .jar。当我现在尝试使用 maven 包构建这个项目时,我会收到一个错误,即找不到那些外部 .jar。
如何调整我的 pom 文件以添加这些 jar? 当前:
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>$project.build.directory/classes/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
【问题讨论】:
【参考方案1】:您可以使用<scope>system</scope>
在构建路径中包含外部jar 作为依赖项
.
查看link
【讨论】:
它看起来不错,但如果它不是 JDK 的一部分,如示例所引用的那样。例如,如果您想引用与 pom 位于同一目录中的 JAR 怎么办? (在项目文件夹中) 好吧,但是那个 dep 不会和你的 jar/war 一起打包。 根据 Maven 官方页面,现在已弃用。【参考方案2】:您需要使用以下命令将外部 jar 添加到 .m2 文件夹中
mvn install:install-file -Dfile=[JAR] -DgroupId=[some.group] -DartifactId=[Some Id] -Dversion=1.0.0 -Dpackaging=jar
这会将给定的 jar 添加到您的 .m2 文件夹中。之后转到 pom.xm 并添加具有给定组 ID、工件 ID 和版本的依赖项。
【讨论】:
在 Windows 中,我必须用双引号将所有参数值括起来【参考方案3】:一个简单的解决方案是将其添加到本地 maven 存储库中
一种方法是按照上一篇文章中的建议通过 mvn install 命令。
另一个简单的方法是,
-
在您的 Eclipse IDE 中右键单击项目选择 Maven 选项。
选择安装或将工件部署到 Maven 存储库选项,然后单击下一步。
点击工件文件复选框旁边的浏览并选择您的 jar 文件。
输入 GroupId 和 ArtifactId 和版本,确保检查生成 pom 和创建校验和并打包为 jar
点击完成,哇!!!!您的工作已完成,jar 已添加到您可以在 setting.xml 或 m2 目录中定义的本地存储库中。
现在只需根据您根据导入输入的 GroupId、ArtifactId 和 jar 版本添加简单的 maven 依赖项,这样您的外部 jar 将由 maven 打包。
【讨论】:
以上是关于如何在 maven jar 构建过程中包含外部 jar?的主要内容,如果未能解决你的问题,请参考以下文章