在构建之前将jar包添加到Maven本地仓库

7
我有一个第三方的jar文件,它不存在于远程仓库中,而是在项目目录中,我想在执行mvn install时将这个jar添加到本地仓库。以下是我当前用于执行此操作的代码:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <phase>initialize</phase>
            <goals>
                <goal>install-file</goal>
            </goals>
            <configuration>
                <groupId>myJar1.0</groupId>
                <artifactId>myJar1.0</artifactId>
                <version>1.0</version>
                <packaging>jar</packaging>
                <file>myJar1.0.jar</file>
            </configuration>
        </execution>
    </executions>
</plugin>

也许采用不同的方法会更好,参见 https://dev59.com/QXE95IYBdhLWcg3wn_Vr#2230464 - Redlab
你遇到了一些错误吗?请同时报告命令行。 - Mario Santini
@Mario Santini,没有错误。 - Melad Basilius
也许你可以在问题中澄清你真正的问题。目前还不是很清楚你想要什么。 - Redlab
如果你不想要任何干预,你可以这样做:https://dev59.com/QXE95IYBdhLWcg3wn_Vr#2229775 - Redlab
显示剩余5条评论
2个回答

6
实际上这并不复杂。
有两种情况需要手动将一个jar包包含到Maven本地仓库中:
1. 你需要使用的jar包在Maven中心仓库中不存在。 2. 你创建了一个自定义的jar包,并且需要在另一个Maven项目中使用。
步骤如下:
1. 使用命令 mvn install: 把jar包放到某个地方,假设它在 c:\ 下:
 mvn install:install-file -Dfile=c:\myJar{version}.jar 
 -DgroupId=YOUR_GROUP -DartifactId=myJar -Dversion={version} -Dpackaging=jar

现在,“myJar” jar已经被复制到您的Maven本地存储库中。

2. pom.xml:

安装完成后,在pom.xml中声明myJar坐标即可。

<dependency>
     <groupId>YOUR_GROUP</groupId>
     <artifactId>myJar</artifactId>
     <version>{version}</version>
</dependency>

3. 完成

构建完成后,现在可以从Maven本地仓库中检索到"myJar" jar文件。


注意:此示例基于另一个示例,我鼓励您阅读以获取更多信息。


5

使用仓库管理器是最好的解决方案。但是这里提供一种可以完全通过 pom.xml 配置进行设置的解决方案(无需开发人员介入):

添加指向您 jar 文件位置的本地仓库:

<repositories>
  <repository>
    <id>project-local-repo</id>
    <url>file://${project.basedir}/src/lib/</url>
  </repository>
</repositories>

将你的库移动/重命名到${project.basedir}/src/lib/some-group-name/myJar-1.0.jar

然后你可以包含这个依赖项:

<dependency>
    <groupId>some-group-name</groupId>
    <artifactId>myJar</artifactId>
    <version>1.0</version>
</dependency>

每次构建时都会选择依赖项。 我在这里写了一个类似的答案:运行Spring Boot进行REST


这是我见过的针对此问题最好的答案。它不需要任何额外的操作,谢谢。 - tmn4jq
将您的库移动/重命名为${project.basedir}/src/lib/some/group/name/myJar/1.0/myJar-1.0.jar。 - Sun Junwen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接