Maven:如何将代码中没有的jar包括到J2EE项目中?
在我的J2EE项目中,我有一些依赖项,这些依赖项在任何Maven仓库中都不可用,因为它们是专有库。 这些库需要在运行时可用,因此必须将其复制到目标/.../ WEB-INF / lib ...
现在,我将它们列为POM中的系统依赖项,但是使用这种方法的问题是,在编译过程中没有将其复制到目标构建中。 这种方法也不是很优雅。
那么,将它们集成到Maven中的最佳方式是哪种?
注意:我不想创建我自己的Maven存储库。
正如你所说的,你不想建立自己的存储库,也许这会有所帮助。
您可以使用maven-install-plugin的install-file目标将文件安装到本地存储库。 如果您为每个文件创建一个包含Maven调用的脚本,并将其与jar保持在一起,那么您(以及任何具有访问权的人)可以轻松地将jar(以及相关的pom文件)安装到其本地存储库中。
例如:
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
要不就
mvn install:install-file -Dfile=ojdbc14.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0 -Dpackaging=jar
然后,您可以在项目中正常引用依赖项。
然而,你最好的选择是建立一个内部的远程仓库,我建议你自己使用Nexus。 如果需要,它可以在你的开发盒上运行,而且开销很小。
对于希望快速解决此问题的人员:
<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>
只需为您的库指定一个唯一的组ID和工件名称并指向它在文件系统中的位置即可。 你已准备好出发。
当然,这是一个肮脏的快速修复,只能在你的机器上工作,并且如果你不改变这个库的路径。 但有时候,这就是你想要的,运行并做一些测试。
编辑:只是重新红色的问题,并意识到用户已经使用我的解决方案作为临时修复。 我会留下我的回答,作为对这个问题的其他人的快速帮助。 如果有人不同意这个,请给我留言。 :)
在您的项目下创建存储库文件夹。 让我们来
${project.basedir}/src/main/resources/repo
然后,将您的自定义jar安装到此回购:
mvn install:install-file -Dfile=[FILE_PATH]
-DgroupId=[GROUP] -DartifactId=[ARTIFACT] -Dversion=[VERS]
-Dpackaging=jar -DlocalRepositoryPath=[REPO_DIR]
最后,将以下回购和依赖项定义添加到项目pom.xml中:
<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>
链接地址: http://www.djcxy.com/p/29687.html
上一篇: Maven: How to include jars, which are not available in reps into a J2EE project?
下一篇: maven build dependency jar file not reflecting changes in code