个人网站可以做点什么,世界杯积分榜排名,网店设计风格怎么写,什么网站必须要flashmaven 安装本地jar1.问题与选择 Maven是一种非常通用的工具#xff0c;其可用的公共存储库首屈一指。 但是#xff0c;总会有一个不在任何地方托管的工件#xff0c;或者托管该工件的存储库有依赖的风险#xff0c;因为当您需要它时#xff0c;它可能不会启动。 发生这种情… maven 安装本地jar 1.问题与选择 Maven是一种非常通用的工具其可用的公共存储库首屈一指。 但是总会有一个不在任何地方托管的工件或者托管该工件的存储库有依赖的风险因为当您需要它时它可能不会启动。 发生这种情况时有几种选择 硬着头皮安装完整的版本库管理解决方案 例如Nexus 尝试将工件上传到更知名的公共存储库之一 使用Maven插件在本地安装工件 Nexus当然是更成熟的解决方案但也更复杂 。 设置一个实例来运行Nexus设置Nexus本身配置和维护它对于使用单个jar这样的简单问题来说可能是过分的。 但是如果这种情况托管自定义工件很常见那么存储库管理器就很有意义。 将工件直接上载到公共存储库或直接在Maven Central中也是一种很好的解决方案但是通常很长 。 另外该库可能根本没有启用Maven这使得处理过程变得更加困难因此现在就不能使用工件就不是一个现实的解决方案。 剩下的第三个选择是-在源代码管理中添加工件并使用maven插件-在这种情况下 maven-install-plugin可以在构建过程需要它之前在本地安装它 。 到目前为止这是最简单最可靠的选项。 2.使用 让我们从将工件安装到本地存储库所需的完整配置开始 plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-install-plugin/artifactIdversion2.4/versionconfigurationgroupIdorg.somegroup/groupIdartifactIdsomeartifact/artifactIdversion1.0/versionpackagingjar/packagingfile${basedir}/dependencies/someartifact-1.0.jar/filegeneratePomtrue/generatePom/configurationexecutionsexecutionidinstall-jar-lib/idgoalsgoalinstall-file/goal/goalsphasevalidate/phase/execution/executions
/plugin 现在让我们分解并分析此配置的详细信息。 2.1。 工件信息 工件信息定义为configuration元素的一部分。 实际语法与声明依赖项非常相似– groupId artifactId和version元素。 配置的下一部分需要定义工件的包装 -指定为jar 。 接下来我们需要使用Maven中提供的属性提供要安装的实际jar文件的位置 -这可以是绝对文件路径也可以是相对路径。 在这种情况下 $ {basedir}属性表示项目的根即pom.xml文件所在的位置。 这意味着someartifact-1.0.jar文件需要放在根目录下的/ dependencies /目录中。 最后还有一些其他可选详细信息也可以配置。 2.2。 行刑 安装文件目标的执行绑定到标准Maven 构建生命周期中的验证阶段 。 这样一来便可以在生命周期的最开始就安装工件然后在下一个编译阶段实际需要该工件。 一旦执行了编译阶段就可以将我们的someartifact-1.0.jar正确地安装在本地存储库中就像从Maven Central本身中检索到的任何其他工件一样。 2.3。 生成pom与提供pom 是否需要为工件提供pom.xml文件的问题主要取决于工件本身的运行时依赖性 。 简而言之如果工件在其他jar上具有运行时相关性则这些jar也将需要在运行时出现在类路径上。 使用简单的工件应该不会有问题因为它在运行时可能没有依赖关系依赖关系图中的叶子。 安装文件目标中的generatePom选项足以满足以下这些工件 generatePomtrue/generatePom 但是如果工件更加复杂并且确实具有非平凡的依赖关系 那么如果这些依赖关系尚未存在于类路径中则必须添加它们。 一种方法是通过在项目的pom文件中手动定义这些新的依赖项。 更好的解决方案是提供一个自定义pom.xml文件以及已安装的工件 generatePomfalse/generatePom
pomFile${basedir}/dependencies/someartifact-1.0.pom/pomFile 这将使Maven可以解析此自定义pom.xml中定义的工件的所有依赖关系而不必在项目的主pom文件中手动定义它们。 3.结论 本文通过使用maven-install-plugin在本地安装介绍了如何使用不在Maven项目中任何地方托管的jar。 参考在baeldung博客上从我们的JCG合作伙伴 Eugen Paraschiv 使用Maven安装本地jar 。 翻译自: https://www.javacodegeeks.com/2013/04/install-local-jar-with-maven.htmlmaven 安装本地jar