我是 Maven 新手。我对此一无所知。 我从 Github 下载了一个开源 Maven 项目。 我在 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正在使用packageshade插件。
<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
我收到(无主 list 属性)错误。
no main manifest attribute, in app-0.2.0-SNAPSHOT.jar
我搜索了 MANIFEST.MF 文件以检查其中的属性,但我找不到它。
如果我缺少某些设置,云有人可以帮助我吗?
最佳答案
你不能只运行一个 jar。
您需要在命令行上指定完整的类路径,或者需要将 jar 构建为 jar-with-dependencies
,例如此处描述:
关于java - 如何在没有(没有主 list 属性)的情况下为现有的 Maven 项目生成 jar 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60955016/