Eclipse, Maven и неверный файл MANIFEST.MF, который используется - PullRequest
0 голосов
/ 12 декабря 2018

На этот раз у меня возникла проблема с запуском моего проекта веб-приложения в Eclipse.

Всякий раз, когда я фиксирую свое приложение в SVN, затем собираю его и развертываю с использованием контейнера Jenkins to Tomcat - приложение работает нормально,и используется правильный MANIFEST.MF.

Но, когда я хочу отладить его в Eclipse (с контейнером Tomcat 8.5) - вместо файла, содержащего мои пользовательские свойства из pom, используется файл манифеста по умолчанию.xml.

В pom.xml я определил несколько переменных, касающихся имени приложения, версии и так далее.Файл манифеста создается в /target/generated-resources/m2e-wtp/webResources/META-INF/MANIFEST.MF.Этот файл содержит все мои пользовательские свойства.

Но когда я вызываю

resources = getClass().getClassLoader()
                  .getResources("META-INF/MANIFEST.MF");

Возвращается путь: /META-INF/MANIFEST.MF.Файл действительно существует, но почти пуст:

Manifest-Version: 1.0

Путь к классу:

Вот мой pom.xml:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <!-- Exclude an unnecessary file generated by the GWT compiler. -->
                <!-- <packagingExcludes>WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**</packagingExcludes>-->
                <manifest>
                    <addClasspath>true</addClasspath>
                    <addDefaultImplementationEntries>false</addDefaultImplementationEntries>
                </manifest>
                <archive>
                    <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                    <manifestEntries>
                        <Specification-Title>${project.name}</Specification-Title>
                        <Specification-Version>${project.version}</Specification-Version>
                        <App-Version>${build.version}</App-Version>
                        <Build-Number>${build.number}</Build-Number>
                        <SVN-Revision>${rev.number}</SVN-Revision>
                        <Sys-Name>${sys.name}</Sys-Name>
                        <Sys-Full-Name>${sys.full.name}</Sys-Full-Name>
                    </manifestEntries>
                </archive>
                <!-- <packagingExcludes>WEB-INF/classes/META-INF/MANIFEST.MF</packagingExcludes> -->
            </configuration>
        </plugin>

Я попробовал почти все предложения, которые я до сих пор гуглил, и ничего не работает: (

Пожалуйста, помогите!

Заранее спасибо, Том

1 Ответ

0 голосов
/ 13 декабря 2018

Хорошо,

Наконец-то я нашел решение.Оказалось, что мне просто нужно просто скопировать сгенерированный файл MANIFEST.MF из выходной папки genrated wtp в мой проект META-INF.

Во время сборки на Jenkins - файл все равно перезаписывается сгенерированным.так что, похоже, это не вредит проекту.

...