相关疑难解决方法(0)

SpringBoot:无法从以下候选者中找到单个主类

我使用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)

spring spring-mvc maven spring-profiles spring-boot

23
推荐指数
7
解决办法
3万
查看次数

maven2:如何在父子pom之间共享一个插件配置?

我正在尝试减少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)

但它不起作用......那有什么不对?

- 最后编辑 - 我想我得到了什么问题:
插件重用声明应该在配置文件构建中声明.
我在一个始终启用的插件中完成了它,现在它正常工作.

非常感谢.

plugins maven-2

15
推荐指数
1
解决办法
2万
查看次数