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

步骤如下。

  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>
  1. 加密下载 gpg 工具,生成 Passphase,上传。需要在 .gnup 文件夹下增加两个配置,mac下在 ~/.gnup 下增加 gpg.conf 和 gpg-agent.conf 两个文件夹,其中分别在 gpg-agent.conf 中添加 allow-loopback-pinentry,在 gpg.conf 添加 use-agent pinentry-mode loopback
  2. 执行 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/

EDIT 2019-6-24: Java 编译器不支持某些语法,例如注解上面使用常量,

在这里插入图片描述会出现 “Compilation Error” 编译不通过的问题,解决方法:
1、不用常量;
2、更改编译器为 Eclipse 的:

	<plugins>
		<plugin>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.8.1</version>
			<configuration>
				<source>1.8</source>
				<target>1.8</target>
				<compilerId>eclipse</compilerId>
			</configuration>

			<dependencies>
				<dependency>
					<groupId>org.codehaus.plexus</groupId>
					<artifactId>plexus-compiler-eclipse</artifactId>
					<version>2.8.5</version>
				</dependency>
			</dependencies>
		</plugin>
	</plugins>

忽略一下提示的 IDE 错误,即可顺利编译。参考错误详情:https://my.oschina.net/u/347227/blog/1545915

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sp42a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值