1

我正在尝试通过 pom.xml 将一些额外的数据写入我的 manifest.mf,但由于某种原因它仍然是空白的....我是 java 的一个完整的新手,所以我要在这里写下我的所有步骤.. 不不管这让我看起来多么愚蠢,因为我不知道我在做什么,所以任何指针都会很棒......

这是我的 pom.xml 的构建部分

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <configuration>
            <archive>
                <manifestFile>
                    ${basedir}/src/main/resources/META-INF/MANIFEST.MF
                </manifestFile>
                <manifest>
                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                    <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                </manifest>
                <manifestEntries>
                    <Test>I am a test</Test>
                </manifestEntries>
            </archive>
        </configuration>
    </plugin>
  </plugins>
</build>

我在 src/main/resources/META-INF 文件中手动创建了文件 MANIFEST.MF 并将其留空,期待它在构建期间写入。

我运行 mvn clean package

我进入 target/resources/classes/META-INF 目录并打开 MANIFEST.MF 其空白。当我去目标/做

java -jar myTest.jar

结果是

myTest.jar 中没有主清单属性

谁能告诉我(非常温和地)我做错了什么

:D

提前致谢

4

1 回答 1

1

maven pom.xml 部分对我来说看起来不错。您可能想使用 winzip 或 winrar 打开 myTest.jar 并检查目标文件夹下 jar 文件中的 MANIFEST.MF 文件。您的 MANIFEST.MF 文件很可能已经与项目的 Implementation-Version 等条目合并。target/resources/classes/META-INF/MANIFEST.MF 为空白的原因是因为尚未发生合并。当时的 Maven 只是简单地将您提供的 MANIFEST.MF 文件复制到目标文件夹中。当您运行 java -jar myTest.jar 时,您会得到“无主清单属性”的结果。那是因为您没有<mainClass/>在该<manifest>部分中指定。如果这样做,它将在 MANIFEST.MF 文件中添加一个Main-Class条目,这将是您执行时要执行的主类java -jar myTest.jar

于 2013-02-26T04:06:09.507 回答