Ubuntu Java 8上的apt maven插件缺少tools.jar

Ubuntu Java 8上的apt maven插件缺少tools.jar,maven,java-8,Maven,Java 8,我正在升级一个maven项目,用Java7中的Java8进行编译 我的机器上安装的java版本是 pauloconnell@pauloconnell-HP-ZBook-15:~/$ update-java-alternatives -l java-7-oracle 1076 /usr/lib/jvm/java-7-oracle java-8-oracle 1077 /usr/lib/jvm/java-8-oracle 我的JAVA_主页已经设置好了 pauloconnell@pauloconn

我正在升级一个maven项目,用Java7中的Java8进行编译

我的机器上安装的java版本是

pauloconnell@pauloconnell-HP-ZBook-15:~/$ update-java-alternatives -l
java-7-oracle 1076 /usr/lib/jvm/java-7-oracle
java-8-oracle 1077 /usr/lib/jvm/java-8-oracle
我的JAVA_主页已经设置好了

pauloconnell@pauloconnell-HP-ZBook-15:~/$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
任何这些都是我的.bashrc文件中的详细信息

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export MAVEN_HOME=/usr/share/maven/bin
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin
当我在带有此插件的模块上运行“mvn编译”时

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>apt-maven-plugin</artifactId>
    <configuration>
        <factory>com.infonova.om.il.apt.Factory</factory>
        <showWarnings>true</showWarnings>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>process</goal>
            </goals>
        </execution>
    </executions>
</plugin>
我发现了这些存在的问题

http://stackoverflow.com/questions/8375423/missing-artifact-com-suntoolsjar
https://github.com/thickpaddy/jenkins_campfire_plugin/issues/12
http://stackoverflow.com/questions/10812668/unable-to-locate-the-javac-compiler
http://stackoverflow.com/questions/5730815/unable-to-locate-tools-jar
并更新了我的插件配置,将这些工具作为系统路径依赖项包括在内

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>apt-maven-plugin</artifactId>
    <configuration>
        <factory>com.infonova.om.il.apt.Factory</factory>
        <showWarnings>true</showWarnings>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>process</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>${java.home}/../lib/tools.jar</systemPath>
        </dependency>
    </dependencies>
</plugin>

我相信我有正确的JAVA_主页和路径设置。有什么想法吗?

java-8-oracle是一个完整的jdk和jre安装。如果您正在运行ubuntu,jar确实存在于“/usr/lib/jvm/java-8-oracle/lib/tools.jar”中。好吧,忘记我的最后一条评论。问题是它正在搜索apt编译器,而apt编译器已经不存在了。这就是使用非标准API的问题
apt
已集成到
javac
编译器中,并可与标准化编译器API一起使用。如果这个问题是由maven/apt maven插件引起的,您需要更新。为什么
${java.home}/./lib/tools.jar
而不是
${java.home}/lib/tools.jar
?@holger-是,在Java 8中,APT编译器似乎被移到了javac中,无法像以前的版本那样通过tools.jar调用。@Eldad AK:
Java.home
指向嵌入在jdk中的jre。
tools.jar
位于
jdk/lib
中,而不是
jdk/jre/lib
中。我很兴奋地看着Java9,那里的
tools.jar
应该会完全消失…
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>apt-maven-plugin</artifactId>
    <configuration>
        <factory>com.infonova.om.il.apt.Factory</factory>
        <showWarnings>true</showWarnings>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>process</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>${java.home}/../lib/tools.jar</systemPath>
        </dependency>
    </dependencies>
</plugin>
pauloconnell@pauloconnell-HP-ZBook-15:~/$ mvn -version
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_IE, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-63-generic", arch: "amd64", family: "unix"