首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java+Maven基于Jenkins构建,而不是在本地计算机上构建

问Java+Maven基于Jenkins构建,而不是在本地计算机上构建
EN

Stack Overflow用户
提问于 2018-02-21 21:35:08
回答 1查看 640关注 0票数 1

我有个奇怪的问题。我的构建是在Jenkins上工作的,但不是本地的。它过去在本地工作,但由于某种原因而停止。

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

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

本地机器上的Mvn -version:

代码语言:javascript
复制
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机器上的工具配置:

代码语言:javascript
复制
jdk-9.0.1
apache-maven-3.5.2

Maven中的编译器插件代码:

代码语言:javascript
复制
    <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的构建结果:

代码语言:javascript
复制
[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

来自本地计算机的构建结果:

代码语言:javascript
复制
[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中的包。所有这些看起来都是这样的:

代码语言:javascript
复制
[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编译插件将版本设置为Java7,所以应该不会有问题,对吧?我不明白这个。通常,问题是它在本地工作,而不是在Jenkins上工作。这是另一种方式。我们将非常感谢您的帮助。在这里开始觉得自己很愚蠢。

编辑:已在另一台Mac上试用。结果和我的Mac一样,失败。已使用Windows创建虚拟机并重试,结果与服务器相同。成功。这似乎是Mac独有的问题。它以前在Mac上工作过,所以我在考虑更新是否破坏了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-21 21:44:38

编译操作在Windows上有效,但在OSX/Linux上无效,最常见的故障是文件名(或目录名)中包含错误的大写或小写字符。

由于Windows works不区分大小写,因此它能够查找和访问该文件。

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

检查包的目录名和some.package.in.projectA文件的文件名,确保它们分别与包的类名完全匹配。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48907325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档