我已经使用以下命令将一些第三方jars安装到我的存储库:
mvn install:install-file -Dfile=/home/anotherCoder/Downloads/nifty-1.0.jar -DgroupId=nifty-gui -DartifactId=nifty-gui -Dversion=1.0 -Dpackaging=jar然而,一旦我进行了mvn编译,maven就会抱怨存储库中没有pom文件,并试图下载它,但不能导致它不能在任何远程存储库中发布。
下面是来自maven的确切信息:
Downloading: http://repo1.maven.org/maven2/nifty-gui/nifty-gui/1.0/nifty-gui-1.0.pom
[INFO] Unable to find resource 'nifty-gui:nifty-gui:pom:1.0' in repository central (http://repo1.maven.org/maven2)那么,如何让maven为jar生成pom文件并将其放入本地存储库中呢?
发布于 2009-10-08 05:50:15
你告诉它!:-)
mvn install:install-file
-Dfile=/home/anotherCoder/Downloads/nifty-1.0.jar
-DgroupId=nifty-gui
-DartifactId=nifty-gui
-Dversion=1.0
-Dpackaging=jar
-DgeneratePom=true(命令放在多行上,这样您就可以很容易地看到最后一个参数。)
不错吧?将来,您可以转到插件的文档,查看它的目标,并且可以看到它接受的所有参数。例如,the install-file goal。
编辑:
关于generatePom标志的默认行为问题,文档指出它默认为true,并且代码似乎支持这一点。然而,使用maven2.0.9和maven-install-plugin版本2.2 (两个版本都有点过时),它不会生成POM。因此,也许递增版本将允许默认版本工作。
> touch DeleteMe.jar
> mvn install:install-file -DgroupId=Delete -DartifactId=Me -Dversion=0.0.0 -Dpackaging=jar -Dfile=DeleteMe.jar
...
[INFO] BUILD SUCCESSFUL
...
> ls ~/.m2/repository/Delete/Me/0.0.0/
Me-0.0.0.jar(未生成POM。)
发布于 2009-10-08 05:48:17
install:install-file目标有一个可选参数generatePom (从2.1版开始),它允许:
如果没有通过参数pomFile提供,
会为工件生成一个最小的POM。
如果本地存储库中还没有现有的POM,则默认为true。
从version 2.3开始,此参数默认为true (以及2.1、2.2中的false )。因此,如果您使用的是2.3之前的安装插件版本,则必须在命令中传递参数。
为了以防万一,显式使用2.3版安装插件的语法如下:
mvn org.apache.maven.plugins:maven-install-plugin:2.3:install-file \
-Dfile=/home/anotherCoder/Downloads/nifty-1.0.jar -DgroupId=nifty-gui \
-DartifactId=nifty-gui -Dversion=1.0 -Dpackaging=jar发布于 2012-03-15 09:26:25
我想我也有同样的问题,我有一个shell脚本,使用的install:install-file目标如下:
mvn -o install:install-file -e
-DgroupId=org.jfree.jcommon
-DartifactId=jcommon
-Dversion=1.0.15
-Dpackaging=jar
-Dfile=jcommon-1.0.15.jar 需要注意的几件事:
artifactId不能包含‘..’...不确定原因,但如果其中包含‘’,则安装将失败。
运行上面的命令只会在maven 3.x中生成一个pom。通过添加以下参数,我能够获得要复制的jar:
-DgeneratePom=true -DupdateReleaseInfo=truehttps://stackoverflow.com/questions/1535729
复制相似问题