【问题标题】:Adding a jar in WEB-INF\lib in POM在 POM 的 WEB-INF\lib 中添加一个 jar
【发布时间】:2012-04-16 23:10:55
【问题描述】:

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

【问题讨论】:

    标签: java eclipse maven pom.xml


    【解决方案1】:

    您应该将这些文件安装在本地存储库中。理想情况下,您在本地计算机或远程服务器(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 中,您可以将这些 jars 引用为常规依赖项。有关 Maven 安装插件的更多信息,请查看他们的 website

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          <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>
          

          本质上,您将范围指定为&lt;system&gt; 以指示maven 不要在存储库中查找它,&lt;systemPath&gt; 以指示它在哪里。这将是一个绝对路径,但可以采用 Maven 属性。详情here.

          您将为您拥有的每个此类 jar 执行此操作。

          【讨论】:

            【解决方案5】:

            使用Apache Maven Dependency Plugin

            • mvn dependency:copy-dependencies,你会发现 target/dependencies 文件夹充满了所有的依赖,包括传递。
            • 下载依赖项时遇到问题,请使用mvn dependency:purge-local-repository 并重试。

            使用eclipse:

            1. 右键单击项目的属性
            2. 选择部署程序集选项。
            3. 点击添加按钮。
            4. 如下选择Java Build Path Entries

            1. 点击下一步获取以下向导:

            2. 选择 Maven 依赖项

            3. 点击完成

            【讨论】:

            • 为此找了两天..真的像魔术一样工作
            猜你喜欢
            • 2011-12-26
            • 2012-04-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-01-11
            • 1970-01-01
            • 2014-08-10
            • 1970-01-01
            相关资源
            最近更新 更多