maven jar包 私服 拉去问题,加载jar包时报错ReasonPhrase:unauthorized

当我们的项目开发完成以后,可能要进行发布(如果是独立的项目,就不需要发布啦,如果是模块项目,那么就要发布到nexus里,供其他开发人员下载调用。)

要想发布项目到nexus里,必须通过<distributionManagement>标签来进行配置。在之前的文章中有介绍nexus的工厂类别,其中提到两个:hosted里的Releases、Snapshots.

当我们发布项目到nexus里时,如果项目版本是x.x.x-Releases,则会发布到Releases工厂中;而项目版本是x.x.x-SNAPSHOTS则发布到Snapshots工厂中。

配置<distributionManagement>:

代码:

 

<distributionManagement>
  	<repository>
  		<id>releasesId</id>
  		<name>Releases name</name>
  		<url>http://localhost:8081/nexus/content/repositories/releases/</url>
  	</repository>
  	<snapshotRepository>
  		<id>snapshots id</id>
  		<name>snapshots name</name>
  		<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
  	</snapshotRepository>
  </distributionManagement>

右键项目 --> run as  ---> maven Build... --> 输入clean deploy命令(一开始会下载一些依赖包,淡定.....)。

后面我们会看到如下的提示信息:

怎么来设置授权呢?

【1】:去到nexus管理界面 --- > 左侧菜单栏“Security”  --> “Users” ,右侧所列出的用户中,只有deployment用户才有发布项目到nexus的权限。

【2】:在setting.xml里使用<server>标签进行授权。server里的id对应<distributionManagement>里设置的id。

流程是:当执行clean deploy命令进行发布时,首先会找到<distributionManagement>的配置,获取配置信息。

然后如果setting.xml里有配置server,对比id值,如果匹配的上,就验证server里的用户是否拥有发布的权限,有权限就把项目发布到对应的仓库里。

setting.xml中server标签代码:

 

<server>
      <id>releasesId</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server>

	<server>
      <id>snapshotsid</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server>

至此,发布的配置就完成了,执行clean deploy命令后,就会在nexus的Releases或Snapshots仓库中找到发布的项目了。



链接地址:https://www.cnblogs.com/shihaiming/p/6410813.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当您使用Maven的`maven-jar-plugin`打包项目并尝试运行生成的`.jar`文件,如果报错说".jar中没有主清单属性",这通常表示Maven没有在生成的JAR中包含Maven的元数据,也就是`META-INF/MANIFEST.MF`文件,该文件包含了关于应用程序的基本信息,如主类(Main-Class)等。 解决这个问题的步骤可能包括: 1. **检查pom.xml配置**:确保在`<build>`标签下`<plugins>`部分的`maven-jar-plugin`配置中,`<archive>`元素包含了`<manifest>`子元素。例如: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.example.MainClass</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 这里`<mainClass>`是你主程序的全限定名。 2. **添加MANIFEST.MF手动**:如果在`pom.xml`中找不到或配置不正确,你可以手动创建一个`MANIFEST.MF`文件,并放入项目的根目录下,内容应类似上面`<manifest>`标签的内容。 3. **检查是否包含主类**:确保你的主类是在打包会被包含的。如果你有一个Java主入口类(如`public class Main`),记得在`<mainClass>`中指定它。 4. **清理和重新构建**:删除目标目录(通常是`target`)下的所有文件,然后运行`mvn clean install`重新构建,以确保所有的设置都被正确处理。 相关问题: 1. 主清单属性是什么,为什么打包需要它? 2. Maven如何自动添加MANIFEST.MF文件? 3. 如果我已经指定了主类,为什么还会报这个错误?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值