Maven:处理不同源/目标版本的构建

时间:2017-08-31 15:31:49

标签: java maven version-control

两个不同的maven Java项目(我们称之为ProjectA和ProjectB)依赖于同一个库(也是一个maven Java项目,所有三个项目都是自编的)。 ProjectA需要为Java 1.7,ProjectB for 1.8编译库。到目前为止,我在我的库的pom.xml中有以下配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

安装这样的库然后允许我构建ProjectB而不是ProjectA,因为并且都设置为1.8。我可以将这两个字段更改为1.7以允许构建ProjectA而不是B。

我想进行正确的版本控制,自动构建等,因此在构建项目之前无法始终更改lib的源/目标版本。维护两个库发布分支,所以通过版本控制系统解决问题,也很烦人,看起来并不优雅(这是我目前的方法,我想改变)。

如果我用变量替换版本(例如$ {jdk.version})并在安装lib时使用命令行标志-Djdk.version = 1.7 ProjectA将由于某种原因,仍然没有构建,声称lib目标是1.8。显然,这并不等同于手动将1.7放入pom.xml文件中。

如何才能优雅地解决这个问题?如果我尝试通过命令行设置相应的属性,为什么maven / Java在1.7上没有正确地定位库?

0 个答案:

没有答案