maven - 如果需要,存储外部jar文件的位置

时间:2014-02-15 14:37:50

标签: java maven jar

在maven项目中存储jar文件的惯例是什么?我知道我应该使用maven本身下载jar,但这次情况有所不同。我正在做一个课程(coursera.org),我有一些秘密的jar文件,我应该使用它并不公开 - 我不会用maven下载它。我确实想将.jar文件存储在我的私人仓库(bitbucket)中。问题是我应该把文件放在哪里,以便maven项目能够使用这个jar。

3 个答案:

答案 0 :(得分:7)

您需要将其添加到本地存储库。然后将其用作任何其他罐子。

你这样做:

mvn install:install-file -Dfile={filename}.jar -DgroupId={some.group.id} 
-DartifactId={artifact} -Dversion={version} -Dpackaging=jar

然后你就这样使用它:

<dependency>
      <groupId>{some.group.id}</groupId>
      <artifactId>{artifact} </artifactId>
      <version>{version}</version>
 </dependency>

答案 1 :(得分:3)

这是另一种简单的方法: 在项目目录中创建基于文件的maven repo

<强>优点: - 任何人都可以签出项目并进行maven编译 - 无需安装存储库管理器

<强>缺点:   - jar将在项目目录中

怎么做? 我在项目中包含了ojdbc6.jar。

第1步: 将ojdbc6.jar复制到$ {project.baseDir} /lib/com/oracle/driver/ojdbc6/SNAPSHOT/ojdbc6-SNAPSHOT.jar

第2步: 在你的pom中添加依赖

<dependency>
    <groupId>com.oracle.driver</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>SNAPSHOT</version>
</dependency>

第3步: 把它添加到你的pom。 这里我们要求maven考虑lib目录 在您的项目目录中作为maven回购。

<repositories>
    <repository>
        <id>my-repo</id>
        <name>mycustom repo</name>
        <url>file:${project.basedir}/lib</url>
     </repository>
</repositories>

第4步: 在步骤2中分析jar文件的路径。 $ {project.baseDir} /lib/com/oracle/driver/ojdbc6/SNAPSHOT/ojdbc6-SNAPSHOT.jar

  • com / oracle / driver / - groupId(必须是3个组件)
  • ojdbc6 / - artifactId
  • SNAPSHOT / - verison

我们已经存储了jar,非常类似于回购邮件中的maven商店。

答案 2 :(得分:2)

最好的事情是install a repository manager,例如Artifactory,Nexus,Archiva,并将这些文件存储到存储库管理器中,并将它们用作通常的依赖项。