首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven安装文件不会生成pom.xml

Maven安装文件不会生成pom.xml
EN

Stack Overflow用户
提问于 2009-10-08 05:06:35
回答 4查看 10.9K关注 0票数 7

我已经使用以下命令将一些第三方jars安装到我的存储库:

代码语言:javascript
复制
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的确切信息:

代码语言:javascript
复制
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文件并将其放入本地存储库中呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-08 05:50:15

你告诉它!:-)

代码语言:javascript
复制
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。因此,也许递增版本将允许默认版本工作。

代码语言:javascript
复制
> 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。)

票数 15
EN

Stack Overflow用户

发布于 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版安装插件的语法如下:

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2012-03-15 09:26:25

我想我也有同样的问题,我有一个shell脚本,使用的install:install-file目标如下:

代码语言:javascript
复制
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:

代码语言:javascript
复制
-DgeneratePom=true -DupdateReleaseInfo=true
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1535729

复制
相关文章

相似问题

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