构建maven项目时的编译错误

时间:2018-01-31 07:13:36

标签: maven jenkins maven-2 nexus nexus3

我们正在尝试从Jenkins构建和部署maven工件到我们的Nexus Repository Manager中,但是我们在构建过程中遇到了编译错误。 这是我们得到的错误。!

  

错误]无法执行目标   org.apache.maven.plugins:Maven的编译器插件:3.5.1:编译   项目studentapp上的(default-compile):编译失败ERROR]否   在此环境中提供编译器。也许你正在运行   JRE而不是JDK? [ERROR]编译错误:[INFO]   -------------------------------------------------- ----------- [ERROR]此环境中未提供编译器。也许你在跑步   在JRE上而不是JDK上?

这是我们的 pom.xml 文件。

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jdevs</groupId>
  <artifactId>studentapp</artifactId>
  <version>2.5-SNAPSHOT</version>
  <packaging>war</packaging>

  <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
   <distributionManagement>
        <repository>
            <id>deployment</id>
            <name>Internal Releases</name>
            <url>http://rig.eastus.cloudapp.azure.com:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>deployment</id>
            <name>Internal Snapshot Releases</name>
            <url>http://rig.eastus.cloudapp.azure.com:8081/repository/maven-snapshots/</url>
        </snapshotRepository> 
    </distributionManagement>
  <dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.5.1</version>
      <type>maven-plugin</type>
    </dependency>

    <dependency>
      <groupId>commons-httpclient</groupId>
      <artifactId>commons-httpclient</artifactId>
      <version>3.1</version>
    </dependency>

    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>jackrabbit-webdav</artifactId>
      <version>1.5.0</version>
    </dependency>

    <dependency>
      <groupId>org.sonatype.sisu</groupId>
      <artifactId>sisu-guice</artifactId>
      <version>2.1.7</version>
      <type>pom</type>
    </dependency>

    <dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
    </dependency>

    <dependency>
      <groupId>aopalliance</groupId>
      <artifactId>aopalliance</artifactId>
      <version>1.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>3.5.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-artifact</artifactId>
      <version>3.5.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.plugin-tools</groupId>
      <artifactId>maven-plugin-annotations</artifactId>
      <version>3.5.1</version>
      <scope>provided</scope>
    </dependency>


  </dependencies>
</project>

3 个答案:

答案 0 :(得分:1)

重新配置 Jenkins 。从主页转到管理插件,然后转到全局工具配置。使用JDK文件夹的正确路径重新实现JAVA_HOME字段。 1]

答案 1 :(得分:0)

您需要在Jenkins配置中定义JDK安装路径。此外,如果您使用主从配置,则需要确保特定的JDK安装(在同一位置)与Jenkins配置中定义的相同。 ANT和Maven安装也是如此。

答案 2 :(得分:0)

至少有两个其他来源表明,对于远程代理,您需要在节点配置中为指向java.home的环境变量 指向JAVA_HOME目录(不仅仅是{{1 }}或类似的内容。

导航至%JAVA_HOME%,然后单击远程节点旁边的配置图标。在此处,向下滚动至“节点属性”,在Jenkins > Manage Jenkins > Manage Nodes的复选框中打勾,并为名称定义Environment Variables,并为值定义JDK的路径,例如java.home

这是我最终要做的,即使在构建代理服务器上发现所有系统环境变量都正确并且c:\Program Files\Java\jdk1.8.0_181java -version都在正确报告之后。

我意识到OP没有指定“主控”或“远程”,但是希望这对偶然发现此问与答的人有所帮助。

此消息提供了第一个线索,但没有解释:https://www.pgs-soft.com/blog/oops-jenkins-slave-maven-not-working/

我无法追踪我在谷歌搜索时发现的关于此修复程序的其他提及。