Manifest.mf остается пустым при попытке записи через процесс сборки maven

Я пытаюсь записать некоторые дополнительные данные в свой manifest.mf через pom.xml, но по какой-то причине он остается пустым.... Я полный новичок в 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>

Я вручную создал файл MANIFEST.MF внутри файла src/main/resources/META-INF и оставил его пустым, ожидая, что он будет записан во время сборки.

Я запускаю чистый пакет mvn

Я захожу в каталог target/resources/classes/META-INF и открываю пустой MANIFEST.MF. Когда я иду к цели/ и делаю

Java -jar myTest.jar

результат

нет основного атрибута манифеста в myTest.jar

Кто-нибудь, пожалуйста, скажите мне (очень мягко), что я делаю неправильно

:D

заранее спасибо


person AttikAttak    schedule 26.02.2013    source источник


Ответы (1)


Раздел maven pom.xml мне нравится. Возможно, вы захотите использовать winzip или winrar, чтобы открыть myTest.jar и проверить файл MANIFEST.MF внутри файла jar в целевой папке. Скорее всего, ваш файл MANIFEST.MF уже объединен с такими записями, как «Версия реализации» для вашего проекта. Причина, по которой target/resources/classes/META-INF/MANIFEST.MF пуста, заключается в том, что слияние еще не произошло. В то время Maven просто скопировал предоставленный вами файл MANIFEST.MF в целевую папку. Когда вы запускаете java -jar myTest.jar, вы получаете результат «нет основного атрибута манифеста». Это потому, что вы не указали <mainClass/> в разделе <manifest>. Если вы сделаете это, он добавит запись Main-Class в файл MANIFEST.MF, который будет основным классом, который будет выполняться, когда вы выполните java -jar myTest.jar.

person Lan    schedule 26.02.2013
comment
Без проблем. Рад, что могу помочь. - person Lan; 27.02.2013