无主清单属性错误-带maven jar插件的intellij

zqdjd7g9  于 2021-07-08  发布在  Java
关注(0)|答案(4)|浏览(515)

我正在关注这个链接上的教程(https://stackabuse.com/web-scraping-the-java-way/),但是当要打包项目并运行jar时,当我使用 java -jar target/ApartmentHunt-1.0-SNAPSHOT.jar . 我的pom.xml看起来像

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>org.example</groupId>
  6. <artifactId>ApartmentHunt</artifactId>
  7. <version>1.0-SNAPSHOT</version>
  8. <name>ApartmentHunt</name>
  9. <!-- FIXME change it to the project's website -->
  10. <url>http://www.example.com</url>
  11. <properties>
  12. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  13. <maven.compiler.source>1.7</maven.compiler.source>
  14. <maven.compiler.target>1.7</maven.compiler.target>
  15. </properties>
  16. <dependencies>
  17. <dependency>
  18. <groupId>junit</groupId>
  19. <artifactId>junit</artifactId>
  20. <version>4.11</version>
  21. <scope>test</scope>
  22. </dependency>
  23. <dependency>
  24. <groupId>org.jsoup</groupId>
  25. <artifactId>jsoup</artifactId>
  26. <version>1.13.1</version>
  27. </dependency>
  28. </dependencies>
  29. <build>
  30. <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
  31. <plugins>
  32. <plugin>
  33. <groupId>org.apache.Maven.plugins</groupId>
  34. <artifactId>Maven-shade-plugin</artifactId>
  35. <version>3.2.0</version>
  36. <executions>
  37. <execution>
  38. <phase>package</phase>
  39. <goals>
  40. <goal>shade</goal>
  41. </goals>
  42. <configuration>
  43. <transformers>
  44. <transformer
  45. implementation="org.apache.Maven.plugins.shade.resource.ManifestResourceTransformer">
  46. <mainClass>org.example.App</mainClass>
  47. </transformer>
  48. </transformers>
  49. </configuration>
  50. </execution>
  51. </executions>
  52. </plugin>
  53. </plugins>
  54. </pluginManagement>
  55. </build>
  56. </project>

java有main方法,位于src/main/java/org.exmaple中,只包含一个print语句。代码与教程完全相同,但我得到一个错误。我从教程中克隆了repo,它在我的机器上工作,所以我不确定我的项目出了什么问题。这是我第一次在项目中使用maven,我使用了maven快速启动原型。
我使用了其他帖子中的各种汇编插件,但它并没有解决我的问题。

5lhxktic

5lhxktic1#

检查代码主方法是否在app.java中

gudnpqoy

gudnpqoy2#

将以下插件添加到my pom.xml并运行 mvn assembly:single 解决了这个问题。虽然我不明白为什么我不能跑 mvn package 做同样的事情时,我在插件中指定发生在打包阶段。另外,我必须 mvn compile 在任何源代码更改之后。下面的代码

  1. <plugin>
  2. <artifactId>maven-assembly-plugin</artifactId>
  3. <configuration>
  4. <archive>
  5. <manifest>
  6. <mainClass>org.example.App</mainClass>
  7. </manifest>
  8. </archive>
  9. <descriptorRefs>
  10. <descriptorRef>jar-with-dependencies</descriptorRef>
  11. </descriptorRefs>
  12. <appendAssemblyId>false</appendAssemblyId>
  13. </configuration>
  14. <executions>
  15. <execution>
  16. <id>make-assembly</id> <!-- this is used for inheritance merges -->
  17. <phase>package</phase> <!-- bind to the packaging phase -->
  18. <goals>
  19. <goal>single</goal>
  20. </goals>
  21. </execution>
  22. </executions>
  23. </plugin>
展开查看全部
lrl1mhuk

lrl1mhuk3#

用maven jar插件试试

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-jar-plugin</artifactId>
  4. <configuration>
  5. <archive>
  6. <manifest>
  7. <addClasspath>true</addClasspath>
  8. <mainClass>org.example.App</mainClass>
  9. </manifest>
  10. </archive>
  11. </configuration>
  12. </plugin>

运行mvn命令:

  1. > mvn clean
  2. > mvn install
展开查看全部
mnemlml8

mnemlml84#

按照本视频中的说明操作。
当您到达工件创建点(ctrl+shift+alt+s)时,更改清单的位置,如下所示(\src\main\资源)

相关问题