我正在使用Spring Boot开发一个Web应用程序,并希望产生战争而不是jar。 使用此处描述的从jar到war的转换,效果很好:http://spring.io/guides/gs/convert-jar-to-war/
但是我想从战争中外部化application.properties,因为我希望能够在不打开战争档案的情况下对其进行修改。
我已经定义了spring-boot-maven插件。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>spring-boot</classifier>
<mainClass>
com.application.Application
</mainClass>
</configuration>
</execution>
</executions>
</plugin>
我认为我需要在清单文件中添加Dependency: config
。
所以,我已经做到了:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Dependencies>config</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
但是当我在Wildfly 8.4上启动Application.war时,我已经知道了
{"JBAS014671: Failed services" => {"jboss.module.service.\"deployment.Application.war\".main" => "org.jboss.msc.service.StartException in service jboss.module.service.\"deployment.screening.war\".main: JBAS018759: Failed to load module: deployment.Application.war:main
Caused by: org.jboss.modules.ModuleNotFoundException: config:main"}}
我希望我的应用程序以我的自定义MANIFEST.MF(带有Dependency:config)开始,以便我可以将我的application.properties文件外部化。
谢谢。
答案 0 :(得分:0)
问题出在服务器端!
指定软件包时,您需要为Wildfly服务器添加 module.xml 文件。
因此,在modules/config/main/
中,我添加了 application.properties 和一个包含以下内容的 module.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="config">
<resources>
<resource-root path="."/>
</resources>
</module>
感谢您@NielsNet的回复。