用 Eclipse 自带的 Maven 发布到中央库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangxin09/article/details/79092996

1、注册 Sonatype OSSRH
例如我的是这样的。注意密码稍后要放在 XML 中,所以特殊字符不要使用 &(需要转义),用 @ 就好。
2、填写工单
写好之后有工作人员问你是否拥有该域名,你回答 yes 即可
3、完善 pom.xml
把你要分享的项目的 pom.xml 有关信息完善,然后加入一堆 插件(参考官方文档)
4、修改 maven 配置
为了省事,使用 eclipse 自带的 maven。但是没有 settings.xml,没关系啊,官网下一个 maven,把里面的 setting.xml 复制到 .m2 下面。添加下面的节点

<server>
            <id>ossrh</id>
            <username>sp42(OSSRH 账号)</username>
            <password>OSSRH 密码</password>
</server>

5、加密
下载 gpg,生成 Passphase,上传。
需要在.gnup文件夹下增加两个配置,mac下在~/.gnup下增加gpg.conf和gpg-agent.conf两个文件夹,其中分别在gpg-agent.conf中添加allow-loopback-pinentry,在gpg.conf添加use-agent
pinentry-mode loopback
6、执行 maven
因为使用 eclipse 自带的缘故,所以会找不到相关环境变量。好在可以手动添加,
JAVA_HOME –》/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
PATH–》/usr/local/bin

Maven 问题备忘

  • 本地依赖 Web 项目有问题,纯 java 项目没问题,“比方说两个项目A,B在一个eclipse workspace下,A需要引用B,当B close掉,A会去本地仓库引用B的jar包,这没问题,当B open时,A貌似也B的工程引进来了” https://www.cnblogs.com/jinguangguo/p/maven.html **对策:使用 war 类型依赖**dependency type war 就可以实现war包依赖,B依赖A,打包的时候就会把A的classes以及文件打进去 参见:http://blog.csdn.net/u011666411/article/details/77160907 http://blog.csdn.net/sxhong/article/details/72869359

  • 出现 “Updating status for Tomcat v6.0 Server at localhost…”. java.lang.NullPointerException 原来是 maven 依赖本地包有问题,把本地包去掉就正常,但这不合理。然后发现其实工程目录结构问题。盖因没用 meavn 之前一直都是 eclipse 默认的 WebContent 目录,转为 meavn 目录懒得转过来,而且在没有做工程聚合的时候也是正常的,后来添加聚合,就发生这莫名其妙 tomcat 问题,后来改为 meavn 推荐的目录,就ok了

http://central.sonatype.org/pages/ossrh-guide.html
https://www.cnblogs.com/gaoxing/p/4359795.html
https://www.cnblogs.com/wxisme/p/8728008.html
https://www.cnblogs.com/zhongshengzhen/p/nexus_maven.html

https://oss.sonatype.org
http://maven.aliyun.com/nexus/#welcome

今日遇到几个问题

1、GPG 证书。原先是在 Mac 搞的,后来换到 win 上,就要导出私钥证书,导出私钥:gpg -o 私钥文件名 –export-secret-keys 用户名。然后在 win 下面导入即可
这里写图片描述
2、上传成功了但最后 close 时显示规则不通过,可能是你的 pom.xml 缺少某些字段,如

<url>http:// </url>

3、最后 close 问题
不知道什么问题,应该是 Maven Nexus 后台问题,上传成功了很久才能 close,以至本地认为超时。其实后台是可以跑完成功的,只是很慢。
4、最后找到原因了,是我设置了 Maven 父项目,父项目在本地,没有提交中央库,后台解析 pom.xml 找不到父项目失败!

可以在网页观察上传进度。
这里写图片描述

这里写图片描述

http://search.maven.org/ 同步也比以前慢得多,http://mvnrepository.com/ 的话则更慢了。

Javadoc @ JDK1.8 问题

忽略就可以了。发现 插件 版本不能太新,3.0.1不行,改 2.9.1就行

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.10.2</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration> <!-- add this to disable checking -->
                <additionalparam>-Xdoclint:none</additionalparam>
            </configuration>
        </execution>
    </executions>
</plugin>

https://www.locked.de/how-to-ignore-maven-javadoc-errors-in-java-8/

猜你喜欢

转载自blog.csdn.net/zhangxin09/article/details/79092996
今日推荐