如何在没有(没有主要清单属性)的情况下为现有的 Maven 项目生成 jar 文件?
How to produce a jar file for existing maven project without (no main manifest attribute)?
我是 Maven 新手。我对此一无所知。
我下载了一个开源的 maven 项目表格 Github。
我在 Eclipse 中打开它。我只修改了一行来修改此格式的日期模式:
final String pattern = "%d{yyyy-MM-dd HH:mm:ss} %-5p - %m%n";
对此
final String pattern = "%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p - %m%n";
然后,我尝试生成项目的jar 文件。
下载项目附带的 pom.xml 正在使用 package shade 插件。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${shade.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>name-of-pro-${project.version}</finalName>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>name.of.the.package.and.Mainclass</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
</transformers>
<filters>
<!-- This is necessary to avoid a java.lang.SecurityException -->
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
因此,我尝试使用以下命令从 maven 获取 jar 文件:
mvn clean package
但是,当我 运行 使用此命令生成的 jar 文件时:
java -jar app-0.2.0-SNAPSHOT.jar
我收到(无主要清单属性)错误。
no main manifest attribute, in app-0.2.0-SNAPSHOT.jar
我搜索了 MANIFEST.MF 文件以检查那里的属性,但我找不到它。
Cloud 如果我遗漏了某些设置,谁能帮助我?
你不能只运行一个罐子。
要么您需要在命令行中指定完整的类路径,要么您需要将 jar 构建为 jar-with-dependencies
,例如此处描述:
我是 Maven 新手。我对此一无所知。 我下载了一个开源的 maven 项目表格 Github。 我在 Eclipse 中打开它。我只修改了一行来修改此格式的日期模式:
final String pattern = "%d{yyyy-MM-dd HH:mm:ss} %-5p - %m%n";
对此
final String pattern = "%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p - %m%n";
然后,我尝试生成项目的jar 文件。 下载项目附带的 pom.xml 正在使用 package shade 插件。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${shade.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>name-of-pro-${project.version}</finalName>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>name.of.the.package.and.Mainclass</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
</transformers>
<filters>
<!-- This is necessary to avoid a java.lang.SecurityException -->
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
因此,我尝试使用以下命令从 maven 获取 jar 文件:
mvn clean package
但是,当我 运行 使用此命令生成的 jar 文件时:
java -jar app-0.2.0-SNAPSHOT.jar
我收到(无主要清单属性)错误。
no main manifest attribute, in app-0.2.0-SNAPSHOT.jar
我搜索了 MANIFEST.MF 文件以检查那里的属性,但我找不到它。
Cloud 如果我遗漏了某些设置,谁能帮助我?
你不能只运行一个罐子。
要么您需要在命令行中指定完整的类路径,要么您需要将 jar 构建为 jar-with-dependencies
,例如此处描述: