首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >J2EE :如何将代表中不可用的jars包含到Maven项目中?

J2EE :如何将代表中不可用的jars包含到Maven项目中?
EN

Stack Overflow用户
提问于 2009-07-22 09:14:43
回答 10查看 145.7K关注 0票数 102

在我的J2EE项目中,我有几个依赖项,这些依赖项在任何Maven库中都不可用,因为它们是专有库。这些库需要在运行时可用,因此必须将其复制到target/ ... /WEB-INF/lib ...

现在,我在我的POM中将它们作为系统依赖项列出,但使用这种方法的问题是,在编译过程中不会将它们复制到目标构建中。此外,这种方法也不是很优雅。

那么,在Maven中集成它们的最佳方式是什么呢?

注意:我不想创建自己的Maven存储库。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-07-22 11:07:39

正如您所说的,您不想建立自己的存储库,也许这会有所帮助。

您可以使用maven- install -plugin的install-file goal将文件安装到本地存储库。如果您为每个文件创建了一个带有Maven调用的脚本,并将其放在jars旁边,那么您(以及任何其他有权访问的人)就可以轻松地将jars (以及相关的pom文件)安装到其本地存储库。

例如:

代码语言:javascript
复制
mvn install:install-file -Dfile=/usr/jars/foo.jar -DpomFile=/usr/jars/foo.pom
mvn install:install-file -Dfile=/usr/jars/bar.jar -DpomFile=/usr/jars/bar.pom

或者只是

代码语言:javascript
复制
mvn install:install-file -Dfile=ojdbc14.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0 -Dpackaging=jar

然后,您可以在项目中正常引用这些依赖项。

但是,您最好的选择仍然是建立一个内部远程存储库,我建议您自己使用Nexus。如果需要,它可以在您的开发箱上运行,并且开销最小。

票数 55
EN

Stack Overflow用户

发布于 2012-10-31 23:05:21

对于想要快速解决此问题的人:

代码语言:javascript
复制
<dependency>
  <groupId>LIB_NAME</groupId>
  <artifactId>LIB_NAME</artifactId>
  <version>1.0.0</version>
  <scope>system</scope>
  <systemPath>${basedir}/WebContent/WEB-INF/lib/YOUR_LIB.jar</systemPath>
</dependency>

只需为您的库指定一个惟一的groupID和工件名称,并指向它在文件系统中的位置。你可以走了。

当然,这是一个肮脏的快速修复,只在您的机器上有效,如果您不更改库的路径的话。但有时,这就是你想要的,运行并做几个测试。

编辑:只是重新回答了问题,并意识到用户已经在使用我的解决方案作为临时解决方案。我将留下我的答案,作为对其他涉及这个问题的人的帮助。如果有人不同意这一点,请给我留言。:)

票数 197
EN

Stack Overflow用户

发布于 2015-12-11 17:22:56

在项目下创建一个存储库文件夹。让我们带上

代码语言:javascript
复制
${project.basedir}/src/main/resources/repo

然后,将您的自定义jar安装到此存储库:

代码语言:javascript
复制
mvn install:install-file -Dfile=[FILE_PATH] \
-DgroupId=[GROUP] -DartifactId=[ARTIFACT] -Dversion=[VERS] \ 
-Dpackaging=jar -DlocalRepositoryPath=[REPO_DIR]

最后,将以下存储库和依赖项定义添加到项目pom.xml:

代码语言:javascript
复制
<repositories>
    <repository>
        <id>project-repo</id>
        <url>file://${project.basedir}/src/main/resources/repo</url>
    </repository>
</repositories>

<dependencies>    
    <dependency>
        <groupId>[GROUP]</groupId>
        <artifactId>[ARTIFACT]</artifactId>
        <version>[VERS]</version>
    </dependency>
</dependencies>
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1164043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档