Eclipse,Maven和不正确的MANIFEST.MF文件正在使用

时间:2018-12-12 15:45:02

标签: eclipse maven manifest.mf

这次,我在Eclipse中运行Web App项目时遇到问题。

每当我将我的应用程序提交到SVN时,然后将其构建并使用Jenkins部署到Tomcat容器-该应用程序运行良好,并且使用了正确的MANIFEST.MF。

但是,当我想在Eclipse中(使用Tomcat 8.5容器)对其进行调试时,将使用一个默认清单文件,而不是包含来自pom.xml的自定义属性的清单文件。

我在pom.xml中定义了一些有关应用程序名称,版本等的变量。清单文件在/target/generate-resources/m2e-wtp/webResources/META-INF/MANIFEST.MF中生成。该文件包含我所有的自定义属性。

但是当我打电话

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

返回的路径是:/META-INF/MANIFEST.MF。该文件确实存在,但几乎为空:

  

清单版本: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 :(得分:0)

好吧

最后我找到了解决方案。原来,我只需要简单地将生成的MANIFEST.MF文件从生成的wtp输出文件夹复制到我的项目META-INF。

在Jenkins上进行构建时-生成的文件总是被文件覆盖,因此这似乎对项目没有害处。