在构建之前将jar添加到maven本地存储库

时间:2017-01-26 15:43:25

标签: java maven

我有第三部分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>

2 个答案:

答案 0 :(得分:5)

实际上它并不那么复杂。

有两种情况需要发出Maven的命令,手动将jar包含到Maven本地存储库中。

  • 您想要使用的jar在Maven中心存储库中不存在。
  • 您创建了一个自定义jar,需要用于另一个Maven项目。

<强>步骤:

1。 mvn install

把你的罐放在某处,让我们假设它位于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。的完成

构建它,现在“myJar” jar能够从您的Maven本地存储库中检索。

注意:此示例基于another example,我建议您阅读以获取更多信息。

答案 1 :(得分:4)

使用存储库管理器是最佳解决方案。但是,这是一个可以完全通过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>

每次构建时都会获取依赖项。 我在这里写了一个类似的答案:running Spring Boot for REST