当前位置: 首页 > 知识库问答 >
问题:

如何用Spring Boot构建两个重新打包的JAR

劳昊明
2023-03-14
Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.3.0.RELEASE:repackage failed: Unable to find a single main class from the following candidates [com.mystuff.tools.b4commandline.Application, com.mystuff.tools.loadtester.Application]
<plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>${artifactId}</id>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                    <configuration>
                        <mainClass>com.mystuff.tools.loadtester.Application</mainClass>
                        <finalName>${artifactId}</finalName>
                    </configuration>
                </execution>
                <execution>
                    <id>b4-commandline</id>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                    <configuration>
                        <mainClass>com.mystuff.tools.b4commandline.Application</mainClass>
                        <finalName>b4-commandline</finalName>
                    </configuration>
                </execution>
            </executions>
        </plugin>

任何帮助都是很好的。我在stackoverflow上看到了maven-plugin的配方,但这些配方不适用于Spring-boot。

共有1个答案

堵龙野
2023-03-14

我无法在一个构建中同时工作(我并不是说这是不可能的),但是一个选择是定义两个maven概要文件

<profiles>
    <profile>
        <id>one</id>
        <activation>
            <property>
                <name>one</name>
            </property>
        </activation>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>default</id>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                            <configuration>
                                <mainClass>com.xyz.LauncherOne</mainClass>
                                <finalName>one</finalName>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

    </profile>

    <profile>
        <id>two</id>
        <activation>
            <property>
                <name>two</name>
            </property>
        </activation>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>default</id>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                            <configuration>
                                <mainClass>com.xyz.LauncherTwo</mainClass>
                                <finalName>two</finalName>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

然后,使用两个配置文件构建它两次(在我的代码示例中用一个属性激活):

$ mvn -Done clean install
$ mvn -Dtwo clean install

它创建:one.jartwo.jar

 类似资料:
  • 当运行maven包目标时 MVN清洁包 构建抛出错误: 目标组织。springframework。启动:spring boot maven插件:3.0.0-M1:重新打包失败:无法在插件“org”中加载mojo“重新打包”。springframework。boot:spring boot maven插件:3.0.0-M1’,由于API不兼容:org。科德豪斯。神经丛。组成部分存储库。例外Compo

  • 在Android Studio上,打包运行,导入的包管理,都是使用Gradle,所以了解 Gradle 是非常必要的。这章我们一起学习 Gradle。

  • IdentityServer 由一些NuGet包组成。 IdentityServer4 nuget | github 包含了核心的 IdentityServer 对象模型,服务和中间件。核心仅包含对内存配置和用户存储的支持——但是,你可以通过配置的方式插入其他的存储支持。这是其他仓库和程序包相关的内容。 Quickstart UI github 包含一个简单的启动器 UI,包括 登录,注销 和 授

  • 本文向大家介绍SpringBoot+Maven 多模块项目的构建、运行、打包实战,包括了SpringBoot+Maven 多模块项目的构建、运行、打包实战的使用技巧和注意事项,需要的朋友参考一下 本篇文章主要介绍了SpringBoot+Maven 多模块项目的构建、运行、打包,分享给大家,具体如下: 项目使用的工具: IntelliJ IDEA JDK 1.8 apache-maven-3.3.9

  • 问题内容: 我有以下代码,该代码分析YAML文件,并且需要匹配一个结构的值并更新该结构的属性。 例如,这是yaml文件(为简单起见翻译为bin)和正确解析的内容 最后,我需要做的是将内部yaml文件更改为上面的结构 。更改是 当我需要 修改 的值时,这里是从to 和to 问题在于第二个循环,我应该使用它来迭代和匹配的值,我不确定如何以有效的方式将它们组合在一起。 问题答案: Golang常见问题解