如何为不同的Java版本识别maven工件?
我有一个针对Java1.7和Java1.6编译的maven项目。 1.7JAR是默认工件,但我不知道如何识别1.6JAR 我可以为工件id、版本添加后缀,或者设置分类器。如何为不同的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构建但内容不同的工件。它是一些可选的任意字符串,如果存在的话,会被附加到版本号后面的工件名称上。 作为这个元素的一个动机,考虑一
哪种方式更可取?当另一个项目
A
依赖于1.7jar,项目B
依赖于1.6jar,项目C
依赖于A
和B
时会发生什么呢?好的,所以经过一些阅读,我认为分类器是最好的选择
从
分类器:
分类器允许区分从同一POM构建但内容不同的工件。它是一些可选的任意字符串,如果存在的话,会被附加到版本号后面的工件名称上。
作为这个元素的一个动机,考虑一个项目,该项目提供了一个针对JRE 1.5的工件,但同时也是一个仍然支持JRE 1.4的工件。第一个工件可以配备分类器jdk15,第二个工件可以配备jdk14,这样客户机可以选择使用哪一个
然后,为了解决将一个jar强加于另一个jar的问题,在projectC的
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。