【问题标题】:How to add extra custom classpath entry into a spring boot run via maven?如何通过 Maven 将额外的自定义类路径条目添加到 Spring Boot 运行中?
【发布时间】:2017-04-17 15:00:47
【问题描述】:

如何将额外的类路径条目添加到从 maven 运行的 Spring Boot 中?

我想我需要在我的 pom.xml 中添加类似这样的内容:

            <configuration>
                <additionalClasspathElements>
                    <additionalClasspathElement>C:/resources</additionalClasspathElement>
                </additionalClasspathElements>
            </configuration>

但是,我不知道什么插件适用。

【问题讨论】:

标签: java spring maven


【解决方案1】:

我假设您想要的是将其他资源/配置文件添加到 Spring Boot 生成的可执行 jar 中的类路径中。我发现的唯一现成解决方案是使用maven-jar-pluginspring-boot-maven-plugin 将类路径添加到清单中,例如:

<!-- setup jar manifest to executable with dependencies -->
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.0.3.RELEASE</version>
    <configuration>
        <fork>true</fork>
        <mainClass>Application</mainClass>
        <classifier>executable</classifier>
        <layout>JAR</layout>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

<!-- add configuration to manifest -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.2</version>
    <configuration>
        <archive>
            <manifestEntries>
                <Class-Path>conf/</Class-Path>
            </manifestEntries>
        </archive>
    </configuration>
</plugin>

请注意,类路径将与生成的可执行 JAR 文件相关。

【讨论】:

  • 你了不起的麦克斯,花了好几个小时终于解决了
  • 太棒了!我不知道为什么,当使用 java -jar 启动 Spring Boot 应用程序时,它会同时忽略 -classpath 开关和 CLASSPATH 环境变量。让它找到类的唯一方法是通过这个插件将外部 jar 添加到 Manifest 的类路径中。
【解决方案2】:

不会:

java -cp <path to classpath entry> -jar <path to program.jar>

为你工作?

【讨论】:

  • 不,它通过 Eclipse IDE 作为 maven 项目运行
  • 然后可能编辑 .classpath 文件添加: ...
  • 什么是.classpath?这是整个IDE的吗?这对我不起作用,因为当我打包 spring boot jar 时,我会丢失该类路径条目。
  • 据我所知,从信息中我读到 -cp 或 -classpath 选项只有在你不使用 -jar 选项时才有效,这就是我运行我的 spring boot 应用程序的方式跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多