jib*_*One 5 java xml pom.xml maven
我在我的机器上安装了2个版本的java,1.7和1.8.用于构建我的java项目我正在使用maven 3.5.0.
在某些情况下,我必须使用java 1.7构建我的java项目,所以我将%JAVA_HOME%环境变量更改"C:\Program Files\Java\jdk1.7.0_80"为"C:\Program Files\Java\jdk1.8.0_131".
然后我想如果我能这样做,pom.xml确定java的版本,通过它来构建项目.
起初我的pom.xml看起来像这样
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
        </configuration>
    </plugin>
...
</plugins>
你可以看到有<source>和<target>标签,但这个标签不适用于java 1.7,1.8,也许它适用于早期版本.
所以我不得不在Mavens"settings.xml"和"pom.xml"文件中进行一些更改:
的settings.xml
<profiles>
    <profile>
        <id>compiler</id>
          <properties>
            <JAVA_1_7_HOME>C:\Program Files\Java\jdk1.7.0_80\bin\javac</JAVA_1_7_HOME>
            <JAVA_1_8_HOME>C:\Program Files\Java\jdk1.8.0_131\bin\javac</JAVA_1_8_HOME>
          </properties>
    </profile>
</profiles>
<activeProfiles>
        <activeProfile>compiler</activeProfile>
</activeProfiles>
的pom.xml
<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <executable>${JAVA_1_7_HOME}</executable>
                <verbose>true</verbose>
                <fork>true</fork>               
            </configuration>
        </plugin>
...
</plugins>
然后使用构建mvn install和它工作!如果我将可执行文件更改为$ {JAVA_1_8_HOME},则生成的jar文件的大小会发生变化.
但是MANIFEST.MF有一个大问题.JDK的构建版本是1.8.0_161,所以MANIFEST.MF会骗人,想找出构建jdk版本.
这样做的原因是Maven(mvn.cmd文件)看起来是%JAVA_HOME%并且采用了java的路径.如果环境中没有%JAVA_HOME%变量,则采用默认系统java -version,在我的情况下是1.8.0_161(JRE版本).
这是mvn.cmd代码片段
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%"=="" goto OkJHome
for %%i in (java.exe) do set "JAVACMD=%%~$PATH:i"
goto checkJCmd
现在这是一个挑战
如何判断mvn.cmd它是由java 7编写的,是用pom.xml编写的?
如何mvn.cmd在MANIFEST.MF文件中编写正确的构建jdk?
| 归档时间: | 
 | 
| 查看次数: | 750 次 | 
| 最近记录: |