如何将jar,source和Javadoc添加到本地Maven存储库?

Pau*_*ker 33 maven

我想添加最新版本的JGoodies Forms(1.5.0)作为依赖项,但我在主存储库中找不到比1.0.5更新的东西,所以如果我理解正确,那么我能做的下一个最好的事情do是将它添加到我的本地存储库.

当我从网站上下载它时,我得到一个ZIP文件,其中包含javadoc文件,源代码和jar(只包含类文件).

将这个添加到我的本地Maven存储库的过程是什么,以便Eclipse能够看到源代码和Javadoc?(我刚刚开始使用Maven)

Jan*_*omä 42

更新:即使这是接受的答案,请查看下面的Emmanuel Bourg的答案 - 他的回答可能就是你想要做的,特别是如果你有快照版本.


您可以使用maven部署插件.它的目标是将单个文件部署到任何存储库.对于罐子本身:

mvn deploy:deploy-file \
    -DgroupId=com.yourname.jgoodies \
    -DartifactId=jgoodies-forms \
    -Dversion=1.50 \
    -Dfile=/path/to/jgoodies-1.50.jar \
    -Dpackaging=jar \
    -Durl=file://path/to/your/local/repository 
Run Code Online (Sandbox Code Playgroud)

对于来源:

mvn deploy:deploy-file \
    -DgroupId=com.yourname.jgoodies \
    -DartifactId=jgoodies-forms \
    -Dversion=1.50 \
    -Dfile=/path/to/jgoodies-sources.jar \
    -Dpackaging=jar \
    -Durl=file://path/to/your/local/repository \
    -Dclassifier=sources
Run Code Online (Sandbox Code Playgroud)

对于javadoc:

mvn deploy:deploy-file \
    -DgroupId=com.yourname.jgoodies \
    -DartifactId=jgoodies-forms \
    -Dversion=1.50 \
    -Dfile=/path/to/jgoodies-javadoc.jar \
    -Dpackaging=jar \
    -Durl=file://path/to/your/local/repository \
    -Dclassifier=javadoc
Run Code Online (Sandbox Code Playgroud)

请注意,这将生成标准POM,因此您不会自动提取JGoodies(如果有)的依赖项,但必须在项目中手动指定它们.

  • 您可以指定`-Djavadoc`和`-Dsources`参数来仅使用一个命令执行相同的操作. (12认同)

Emm*_*urg 29

以下是使用单个命令部署二进制文件,源代码和javadoc的语法:

mvn deploy:deploy-file \
    -DgroupId=com.jgoodies \
    -DartifactId=jgoodies-forms \
    -Dversion=1.6.0 \
    -Dfile=jgoodies-forms-1.6.0.jar \
    -Dsources=jgoodies-forms-1.6.0-sources.jar \
    -Djavadoc=jgoodies-forms-1.6.0-javadoc.jar \
    -Durl=file://path/to/your/local/repository
Run Code Online (Sandbox Code Playgroud)

  • 如果您正在执行快照而不是发布,那么以这种方式执行它尤其重要,而不是另一种方式,因为快照ID对于源jar与其他jar类不同,并且maven不会知道来源对应于类 (2认同)
  • 更新了我的回答以指出伊曼纽尔的观点,因为他是这样做的更好方法。 (2认同)