Java + Maven建立在Jenkins上,但不在本地机器上

时间:2018-02-21 13:35:08

标签: java maven jenkins

我有一个奇怪的问题。我的构建正在研究Jenkins,但不适用于本地。它曾经在本地工作,但由于某种原因停止了。

我没有未提交的更改。 Jenkins上的代码与我的主分支同步(使用Git)。

我已从本地计算机项目中删除了所有未提交的文件。

本地机器上的Mvn -version:

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T09:58:13+02:00)
Maven home: /Users/andersvincentlund/Downloads/apache-maven-3.5.2
Java version: 9.0.4, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
Default locale: en_SE, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.6", arch: "x86_64", family: "mac"

Jenkins机器上的工具配置:

jdk-9.0.1
apache-maven-3.5.2

Maven中的编译器插件代码:

    <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>

在Jenkins上构建结果:

[INFO] Reactor Summary:
[INFO] 
[INFO] RootProject ..................................... SUCCESS [  1.781 s]
[INFO] ProjectA ........................................ SUCCESS [ 15.344 s]
[INFO] ProjectB ............................................ SUCCESS [ 35.063 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

从本地计算机构建结果:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] RootProject ..................................... SUCCESS [  0.350 s]
[INFO] ProjectA ........................................ SUCCESS [  1.285 s]
[INFO] ProjectB ............................................ FAILURE [  1.402 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

ProjectB中的失败引用了项目A中的包。所有内容如下所示:

[ERROR] /somePath1/src/main/java/somePath2/SomeFile.java:[10,38] error: package some.package.in.projectA does not exist

我知道我的Maven和Java在不同的机器上的版本并不完全相同。当地的是运行Sierra的Mac。远程的是Windows Server 2012 R2。由于我使用maven编译插件将版本设置为Java 7,这应该不是问题吧?我不懂。通常问题是它在本地工作但不在Jenkins上工作。这是另一种方式。非常感谢帮助。开始在这里感到非常愚蠢。

编辑: 试过另一台Mac。与我的Mac相同的结果,失败。使用Windows创建了一个VM并再次尝试,结果与服务器相同。成功。似乎是一个与Mac隔离的问题。它之前在Mac上运行过,所以我正在考虑更新是否已经破坏了什么。

1 个答案:

答案 0 :(得分:2)

我的编译操作适用于Windows但不适用于OSX / Linux,最常见的失败是文件名(或目录名称)中大写或小写字符错误的文件。

由于Windows不区分大小写,因此能够找到并访问该文件。

OSX和Linux的工作区分大小写,因此无法访问该文件。

检查包some.package.in.projectA的目录名称 以及它们与包和类名完全匹配的Java文件的文件名。