将一组文件添加到本地Maven存储库

时间:2013-06-16 07:04:54

标签: maven

我有一个现有的java项目。这是一个maven项目。我想将它添加到我的本地maven存储库,以便在其他项目中重用。

MyUtilityClass.jar
MyUtilityClassSources.jar
MyUtilityClassDocs.jar

取决于

slf4j-1.7.2.jar
junit-4.11.jar

这个SO Question/Answer提供了使用mvn install将单个文件添加到本地maven存储库的说明:install-file

这个SO Question/Answer给出了使用mvn deploy-file添加一组jar - sources,javadoc等的说明。

SO Question/Answer暗示通过pom.xml文件指定依赖项,但不提供详细信息。

我有两项任务在我面前,我想完成:

  1. 将MyUtilityClass的项目添加到我的本地存储库,当我将它们拉入时,会自动添加源,文档和依赖项。

  2. 我想为MyUtilityClass项目创建一个maven任务,将最新和最好的包添加到我的本地存储库。

  3. 我使用eclipse作为IDE和maven版本3.0.4。该项目的POM如下所示:

    <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.local.mine</groupId>
      <artifactId>MyUtilityClass</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <name>MyUtilityClass</name>
      <url>http://maven.apache.org</url>
    
      <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>com.local.mine</groupId>
            <artifactId>slf4j</artifactId><!--from local repo -->
            <version>1.7.2</version>
        </dependency>
        <dependency>
            <groupId>com.local.mine</groupId>
            <!--from local repo and shouldn't be automatically added -->
            <!-- to projects that reuse the resulting bundle -->
            <artifactId>log4j</artifactId>
         <version>1.2.17</version>
        </dependency>
      </dependencies>
    </project>
    

2 个答案:

答案 0 :(得分:1)

最简单的方法是将每个项目视为自己的发布周期。它们应该是相互独立的。

正如您所发现的,您可以

  • 使用install将工件安装到本地存储库
  • 使用install-file将辅助工件安装到本地存储库
  • 使用deploy来执行与安装(-file)相同的步骤,但使用远程存储库

这也是发布插件。当您执行发布的配对目标:准备和发布:执行时,您最终会使用

  • 版本值在pom文件中更新
  • 创建版本控制标记
  • 已安装的工件&amp;部署
  • 部署了任何源和/或javadoc工件

您要使用的是release plugin

答案 1 :(得分:0)

简单的解决方案是使用

mvn install

在您希望重复使用的项目中。这会将项目的工件安装到您的位置存储库中。