首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Maven项目,其模块设计为在不同的JDK上运行

Maven项目,其模块设计为在不同的JDK上运行
EN

Stack Overflow用户
提问于 2015-12-14 14:05:19
回答 2查看 50关注 0票数 2

我有一个项目,其中一个主模块使用pom打包,几个子模块被定义为使用jar打包。我希望它们中的一些可以在JDK7上运行,另一些可以在JDK8上运行(并最终将用于JDK7的依赖项嵌入到JDK8对应项中)。

目标是将子模块发布为独立的jars (例如在Maven Central上)

这个方法正确吗?有缺点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-14 14:20:42

您可以使用工具链插件:

代码语言:javascript
运行
复制
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-toolchains-plugin</artifactId>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>toolchain</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <toolchains>
                    <jdk>
                        <version>${java.min.version}</version>
                        <vendor>oracle</vendor>
                    </jdk>
                </toolchains>
            </configuration>
        </plugin>

您需要一个工具链文件,该文件配置要使用的工具链:https://maven.apache.org/plugins/maven-toolchains-plugin/toolchains/jdk.html

您还需要在编译器插件等中指定java版本。

票数 4
EN

Stack Overflow用户

发布于 2015-12-14 14:11:13

绝对没有什么反对这样做的。但是,如果您有一个需要使用Java 8进行编译的模块,则需要确保Maven也是用Java 8启动的。

然后,您需要重写每个模块的maven-compiler-plugin配置,并定义正确的Java (<source><target>属性)。

之后,您可以在Java 8项目中使用Java 7依赖项,而不会出现任何问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34268977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档