执行创建工程结构命令后生成的pom.xml文件中没有<build>相关内容

执行创建工程结构命令后生成的pom.xml文件中没有<build>相关内容

按照老师视频中的步骤提示进行操作,执行mvn archetype:generate成功后,生成的pom.xml的内容为:


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.learn.maven</groupId>
  <artifactId>maven-cmd</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>maven-cmd</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>


并没有老师文档中的下图中的内容

http://img1.sycdn.imooc.com//climg/5f6592b009889f8d18810610.jpg

因此在执行mvn package后,提示maven-cmd-1.0-SNAPSHOT.jar中没有主清单属性


请问老师这块应该如何解决?是我哪里配置的不对吗?Maven的版本跟视频中是一致的




正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,同学的类名书写错误,如:

http://img1.sycdn.imooc.com//climg/5f65e99009dd51eb04550132.jpg

http://img1.sycdn.imooc.com//climg/5f65e9a60956279702650090.jpg

建议同学修改一下再试试。

祝:学习愉快~


  • 凯尔特饼 提问者 #1
    啊,实在不好意思,这么简单的问题都没看出来。给老师添麻烦了
    2020-09-19 19:33:00
提问者 凯尔特饼 2020-09-19 19:13:35

我的pom.xml文件如下:没看出哪里错了呀

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.learn.maven</groupId>
  <artifactId>maven-cmd</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>maven-cmd</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
 	<plugins>
 		<plugin>
 			<groupId>org.apache.maven.plugins</groupId>
 			<artifactId>maven-assembly-plugin</artifactId>
 			<version>2.5.5</version>
 			<configuration>
 				<archive>
 					<manifest>
 						<mainClass>com.learn.maven.APP</mainClass>
 					</manifest>
 				</archive>
 				<descriptorRefs>
 					<descriptorRef>jar-with-dependencies</descriptorRef>
 				</descriptorRefs>
 			</configuration>
 		</plugin>
 	</plugins>
 </build>
</project>


工程结构截图如下:

http://img1.sycdn.imooc.com//climg/5f65e7c809637f7203980290.jpg



好帮手慕阿满 2020-09-19 17:39:53

同学你好,使用java -jar名提示错误是正常的,此时的jar包中没有指定运行的主类,所以提示:没有主清单属性。

同学可以使用解压缩的方式打开(注意不要解压),找到MANIFEST.MF文件,如:

http://img1.sycdn.imooc.com//climg/5f65d11d090485cb07800512.jpg

使用可以编辑的方式打开(例如记事本)。

然后指定运行的主类,例如:

http://img1.sycdn.imooc.com//climg/5f65d1730996161b03610146.jpg

Main-Class: 包名.类名

注意冒号后有空格。然后保存。

保存时会提示如下,点击确定保存修改,重新运行再试试。

http://img1.sycdn.imooc.com//climg/5f65d1ca0901736505230228.jpg

祝:学习愉快~

  • 提问者 凯尔特饼 #1
    有点没理解,那请问老师为什么刚才我在pom.xml中用build指定Main方法所在的类不行呀
    2020-09-19 18:46:01
  • 好帮手慕阿满 回复 提问者 凯尔特饼 #2
    同学你好,在pom文件中使用build的方式指定main方法所在的类也是可以的。建议同学检查一下main方法所在的类的包名,类名等是否正确。祝:学习愉快~
    2020-09-19 19:09:05
  • 提问者 凯尔特饼 回复 好帮手慕阿满 #3
    老师,我把pom.xml和工程结构贴出来了,麻烦看一下哪里有问题,看半天都没看出来哪有问题
    2020-09-19 19:14:12
好帮手慕阿满 2020-09-19 15:19:44

同学你好,这边测试mvn archetype:generate命令,生成的pom文件中也没有<build>标签,如:

http://img1.sycdn.imooc.com//climg/5f65ae63098c98f709110450.jpg

这个可能和版本及环境有关。

但是使用mvn package能够打包成功,如:

http://img1.sycdn.imooc.com//climg/5f65b0cd09d0b8e406430772.jpg

同学在打包前是否执行了mvn compile编译命令?如果没有先执行编译命令,再打包。

祝:学习愉快~


  • 提问者 凯尔特饼 #1
    打包成功了,但是执行 java -jar,执行失败了。提示上面的错误。我现在在pom.xml中加上了下面这段,但还是提示一样的错误 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <archive> <manifest> <mainClass>com.learn.maven.APP</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build>
    2020-09-19 15:41:59
  • 提问者 凯尔特饼 #2
    D:\maven-cmd\target>java -jar maven-cmd-1.0-SNAPSHOT.jar maven-cmd-1.0-SNAPSHOT.jar中没有主清单属性
    2020-09-19 15:42:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师