如何为不同的Java版本识别maven工件?

如何为不同的Java版本识别maven工件?,java,maven,version,Java,Maven,Version,我有一个针对Java1.7和Java1.6编译的maven项目。 1.7JAR是默认工件,但我不知道如何识别1.6JAR 我可以为工件id、版本添加后缀,或者设置分类器。 哪种方式更可取?当另一个项目A依赖于1.7jar,项目B依赖于1.6jar,项目C依赖于A和B时会发生什么呢?好的,所以经过一些阅读,我认为分类器是最好的选择 从 分类器: 分类器允许区分从同一POM构建但内容不同的工件。它是一些可选的任意字符串,如果存在的话,会被附加到版本号后面的工件名称上。 作为这个元素的一个动机,考虑一

我有一个针对Java1.7和Java1.6编译的maven项目。 1.7JAR是默认工件,但我不知道如何识别1.6JAR

我可以为工件id、版本添加后缀,或者设置分类器。
哪种方式更可取?当另一个项目
A
依赖于1.7jar,项目
B
依赖于1.6jar,项目
C
依赖于
A
B
时会发生什么呢?

好的,所以经过一些阅读,我认为分类器是最好的选择

分类器: 分类器允许区分从同一POM构建但内容不同的工件。它是一些可选的任意字符串,如果存在的话,会被附加到版本号后面的工件名称上。 作为这个元素的一个动机,考虑一个项目,该项目提供了一个针对JRE 1.5的工件,但同时也是一个仍然支持JRE 1.4的工件。第一个工件可以配备分类器jdk15,第二个工件可以配备jdk14,这样客户机可以选择使用哪一个

然后,为了解决将一个jar强加于另一个jar的问题,在project
C的
pom中,使用
部分并在那里指定分类器


希望这有帮助

您必须在pom.xml文件中声明java编译器版本:

<build>
    <finalName>skremm_mobile_web</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

skremm_移动网络
org.apache.maven.plugins
maven编译器插件
3.1
1.7
1.7

不确定处理此问题的最佳方法,但如果您想强制执行特定的jar版本,请在
pom中使用
,您可以使用Java 7版本做什么,而不能使用Java 6版本?为什么有两个版本?我只要一个。@PeterLawrey这是Java 7代码。使用一个特殊的编译器来创建与Java 6兼容的jar。但是,默认的选择应该是使用默认编译器创建的jar,我仍然不知道为什么不能在Java7中使用Java6JAR。