在POM的WEB-INF \ lib中添加jar

时间:2012-04-03 09:51:13

标签: java eclipse maven pom.xml

我有几个jar文件,我没有从任何存储库获取。我有这些jar文件在WEB-INF \ lib文件夹中的src目录。有没有办法在POM中添加这些作为依赖项而不指定jar文件的实际路径(相对路径很好..)?

5 个答案:

答案 0 :(得分:20)

您可以按如下方式定义依赖项:

<dependency>
    <groupId>my.group</groupId>
    <artifactId>my.artifact</artifactId>
    <version>a.b</version>
    <scope>system</scope>
    <systemPath>${basedir}/WEB-INF/lib/my.artifact.jar</systemPath>
</dependency>

基本上,您将范围指定为<system>,以指示maven不在存储库中查找此内容,并<systemPath>指示它在何处。这将是一个绝对路径,但可以采取maven属性。详情here

你会为你拥有的每个这样的罐子做到这一点。

答案 1 :(得分:4)

您应该在本地存储库中安装这些文件。理想情况下,您在本地计算机或远程服务器(Nexus,Artifactory,Archiva)上安装了共享存储库,并将jar部署到该存储库。

要在本地安装文件,您可以使用以下命令(取自Maven安装插件网站):

mvn install:install-file -Dfile=your-artifact-1.0.jar \
                     [-DpomFile=your-pom.xml] \
                     [-Dsources=src.jar] \
                     [-Djavadoc=apidocs.jar] \
                     [-DgroupId=org.some.group] \
                     [-DartifactId=your-artifact] \
                     [-Dversion=1.0] \
                     [-Dpackaging=jar] \
                     [-Dclassifier=sources] \
                     [-DgeneratePom=true] \
                     [-DcreateChecksum=true]

在你的pom中,你可以将这些jar作为常规依赖项引用。有关Maven安装插件的更多信息,请查看他们的website

答案 2 :(得分:3)

使用Apache Maven Dependency Plugin

  • mvn dependency:copy-dependencies您会发现target/dependencies文件夹中包含所有依赖项,包括传递。
  • 在下载依赖项遇到问题时,请使用mvn dependency:purge-local-repository然后重试。

使用eclipse:

  1. 右键单击项目的属性
  2. 选择部署程序集选项。
  3. 点击添加按钮。
  4. 选择 Java构建路径条目,如下所示。
  5. enter image description here

    1. 点击下一步以获取以下向导:
      enter image description here

    2. 选择 Maven依赖关系

    3. 点击完成

答案 3 :(得分:1)

正如Guillaume正确指出的那样,只需将jar安装到本地/企业存储库中即可。

如果出于某种原因无法做到这一点,请使用${basedir} property

答案 4 :(得分:1)

您可以使用$ {project.baseuri}来获取项目的路径,然后从那里转到WEB_INF / lib目录。 This page列出了您可以在pom中访问的此类属性。