我使用Spring Initializer,嵌入式Tomcat,Thymeleaf模板引擎生成了Spring Boot Web应用程序.使用的技术:Spring Boot 1.4.2.RELEASE,Spring 4.3.4.RELEASE,Thymeleaf 2.1.5.RELEASE,Tomcat Embed 8.5.6 ,Maven 3,Java 8
我有一个SpringBoot应用程序.有这两个类:
@Profile("!war")
@SpringBootApplication
@Import({SecurityConfig.class ,PersistenceConfig.class, ServiceConfig.class})
public class BookApplication {
public static void main(String[] args) {
SpringApplication.run(BookApplication.class, args);
}
}
@Profile("war")
@Import({SecurityConfig.class ,PersistenceConfig.class})
@SpringBootApplication
public class BookApplicationWar extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(BookApplicationWar.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(BookApplicationWar.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
我用这个命令生成战争
mvn clean package -DskipTests -Dspring.profiles.active=pebloc,war -DAPP-KEY=pebloc
Run Code Online (Sandbox Code Playgroud)
但我得到了这个错误:
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.2.RELEASE:repackage (default) on …Run Code Online (Sandbox Code Playgroud) 我正在尝试减少maven pom文件中的复制/粘贴.
我们有一个主要的pom和许多继承自主人的儿童项目.
我想分享一个复杂的插件定义,如下所示:
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<configuration>
<!-- many xml lines here -->
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>assemble</goal>
<goal>generate-daemons</goal>
<goal>create-repository</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo.appassembler</groupId>
<artifactId>appassembler-booter</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
Run Code Online (Sandbox Code Playgroud)
当这个插件定义在项目pom中时,打包工作做得很好.
当定义移动到父pom(in或in)时,甚至不会启动包装.
是否可以共享插件配置?怎么样 ?
- 在第一个答案后编辑---
我尝试了以下内容:
- 将我的XL包装插件配置放在我父pom的元素中
- 在我的项目pom中添加以下元素:
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
</plugin>
...
</plugins>
Run Code Online (Sandbox Code Playgroud)
但它不起作用......那有什么不对?
- 最后编辑 - 我想我得到了什么问题:
插件重用声明应该在配置文件构建中声明.
我在一个始终启用的插件中完成了它,现在它正常工作.
非常感谢.