我是maven的新手,对不起提问:需要使用我的工件版本而不是repo 构建maven项目。
更详细: 我从github下载了jboss源代码并使用maven 3构建它们。这太棒了!我需要对jboss依赖进行一些更改,称为#et; picketbox"。现在它是jboss" pom.xml"中的一件神器。
我在my_picketbox.jar文件中构建了自己的picketbox版本。 如何告诉maven使用我的.jar而不是repo中的.j /
答案 0 :(得分:3)
也许我错过了一些东西但是如果你明确地重命名了工件,那么只需要在相关的JBoss POM文件中用picketbox
替换my_picketbox
。< / p>
<dependency>
<groupId>...</groupId>
<artifactId>my_picketbox</artifactId>
<version>...</version>
</dependency>
当然,您可以通过mvn install
确保您的工件在您的本地仓库中。
干杯,
答案 1 :(得分:2)
我会使用maven-install插件安装jar文件。
http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html
答案 2 :(得分:2)
首先,将您的Picketbox版本安装到本地Maven存储库中。如果您的自定义版本是Maven项目,则可以通过运行
来实现mvn install
如果您的自定义Picketbox版本不是Maven项目,请将Jar本身安装到本地Maven存储库中,如下所示:
mvn install:install-file -Dfile=my_picketbox.jar -DgroupId=org.picketbox -DartifactId=my_picketbox -Dversion=2.3 -Dpackaging=jar
然后通过将此片段添加到您正在构建的JBoss项目的pom.xml
文件中来更改JBoss所依赖的Picketbox版本(用这个替换pocketbox上的现有依赖项):
<dependency>
<groupId>org.picketbox</groupId>
<artifactId>my_picketbox</artifactId>
<version>2.3</version>
</dependency>
答案 3 :(得分:1)
<dependency>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<version>x.x.x</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/xxxx.jar</systemPath>
</dependency>
这允许您引用未存储在本地而不是maven central的库。
答案 4 :(得分:0)
Maven采用POM文件中指定的内容;请注意,包含你所写的依赖关系的POM可能会被深深埋藏,甚至在你下载的资源中都没有。
在项目树中搜索有问题的工件,并将其版本号替换为您的版本。如果这没有帮助,请按照Nils在其他答案中的说法进行操作,但请记住在原始版本中安装工件(您可能必须先在本地存储库中找到它并将其删除)。 / p>