Java 如何在一个jar中打包多个Spring引导jar

Java 如何在一个jar中打包多个Spring引导jar,java,spring,maven,spring-boot,spring-boot-maven-plugin,Java,Spring,Maven,Spring Boot,Spring Boot Maven Plugin,之后有两个类似spring boot的项目: service_one service_two 他们都可以独自取得成功 现在我改变了这种方式,我使用service\u allproject来管理应该运行哪些服务:比如jvm属性。最后的项目是什么样的 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/

之后有两个类似spring boot的项目:

service_one
service_two
他们都可以独自取得成功

现在我改变了这种方式,我使用
service\u all
project来管理应该运行哪些服务:比如jvm属性。最后的项目是什么样的

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.demo.service</groupId>
    <artifactId>service_all</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>service_all</name>

    <dependencies>
        <dependency>
            <groupId>com.demo.service</groupId>
            <artifactId>service_one</artifactId>
            <version>1.0.0</version>
        </dependency>

        <dependency>
            <groupId>com.demo.service</groupId>
            <artifactId>service_two</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.0.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
现在我无法将
service\u one
service\u two
lib打包到
service\u all
jar的lib中

那么我该如何解决这个问题呢

附言:

  • 我不能改变
    服务第一
    服务第二
    任何东西,只能像依赖一样使用
  • 我不能使用maven parent

您是否尝试在first的部署程序集中添加第二个项目,然后创建一个jar?抱歉,我无法更改
服务\u one
服务\u two
任何东西,排除运行的属性。这似乎是您在java代码之外解决的问题,即:通过更改目标计算机上的部署脚本。我知道你的锤子是Java,但不是每个钉子都需要JVM解决方案。你是否尝试在first的部署程序集中添加第二个项目,然后创建一个jar?对不起,我无法更改
服务\u one
服务\u two
任何东西,排除正在运行的属性。这似乎是您在java代码之外解决的问题,即:通过更改目标计算机上的部署脚本。我知道你的锤子是Java,但不是每个钉子都需要JVM解决方案。
// Java class in service_all


@Slf4j
@SpringBootApplication
public class Application {

    public static void main(String[] args) throws IOException {
        /**
         * Common
         */
        ConfigurableApplicationContext commonContext =
                new SpringApplicationBuilder(Application.class).web(WebApplicationType.NONE).run(args);
        log.info(commonContext.getId() + " isActive: " + commonContext.isActive());

        /**
         * service_one
         */
        if (commonContext.getEnvironment().containsProperty("service_one")) {
            ConfigurableApplicationContext oneContext =
                    new SpringApplicationBuilder(ServiceOneApplication.class)
                            .parent(commonContext)
                            .sources(RefreshScope.class).run(args);
            log.info(configContext.getId() + " isActive: " + oneContext.isActive());
        }

        /**
         * service_two
         */
        if (commonContext.getEnvironment().containsProperty("service_two")) {
            ConfigurableApplicationContext twoContext =
                    new SpringApplicationBuilder(ServiceTwoApplication.class).parent(commonContext)
                            .sources(RefreshScope.class).run(args);
            log.info(adminContext.getId() + " isActive: " + twoContext.isActive());
        }
    }
}