Jenkins-在Mac上使用Maven构建JavaFX本机安装程序

时间:2018-09-11 11:08:23

标签: macos maven jenkins javafx javafx-8

Jenkins在Mac上使用Maven构建JavaFX本机安装程序时遇到问题。

我的目标是在Mac上自动创建JavaFX应用程序的本机安装程序(创建* .dmg和* .pkg文件)。

我使用Jenkins设置了Mac服务器,并能够通过Jenkins任务构建项目(它从GIT获取源并调用class MSG { private: char* data; public: std::size_t size; std::string target_id; MSG( const MSG& msg ) : MSG( msg.getData(), msg.size, msg.target_id ) { }; MSG( char* sourceData, std::size_t sourceSize, const std::string& id ) { data = new char[sourceSize]; std::copy_n( sourceData, sourceSize, data ); size = sourceSize; target_id = id; }; MSG( ) : MSG( ( char* ) nullptr, 0, UNDEFINED ) { }; ~MSG( ) { delete[] data; data = 0; }; MSG& operator=(MSG& that) { swap(*this, that); return *this; } MSG& operator=(const MSG& other) { if (this != &other) // (1) { // get the new data ready before we replace the old std::size_t newSize = other.size; char* newArray = newSize ? new char[newSize]() : nullptr; // (3) std::copy(other.getData(), other.getData() + newSize, newArray); // (3) // replace the old data (all are non-throwing) delete [] data; size = newSize; data = newArray; target_id = other.target_id; } return *this; } }; )。

我还可以通过从ssh控制台调用mvn clean deploy source:jar -e -U -T 1C 手动构建* .pkg本机安装程序。

当我尝试从Jenkins运行上述任务(以构建本机安装程序)时出现问题,最后 javafx-maven-plugin:8.8.3:native 插件说:

  

10:00:32 [INFO]由于配置错误'无法确定指定的运行时目录中存在哪个JRE / JDK,正在跳过'DMG安装程序'。

     

10:00:32解决建议:将运行时目录指向JDK / JRE根目录,该根目录的Contents / Home目录或JDK的Contents / Home / jre目录之一。

我试图在〜/ .bash_profile 中设置环境变量JAVA_HOME,JRE_HOME,JDK_HOME,JAVA_JRE,并设置为〜/ .profile (当我重新登录-我想这里没有问题)。

mvn clean install -f ./javafx-gui/pom.xml -Pbuild-distribution jfx:native

除此之外,我想不出其他任何改变。

注意:我不是Mac用户,我通常在Linux上工作

日志文件:

Server009:~ jenkins$ cat .bash_profile
export JAVA_HOME=$(/usr/libexec/java_home)
export JAVA_JRE=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/
export JDK_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/
export JRE_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/

1 个答案:

答案 0 :(得分:0)

所以我找到了解决方案-Jenkins提供了它自己的JDK。因此,此修复程序将JDK组合框设置为(system)。或在管道脚本中删除“ jdk'JDK1.8'” 。 该问题是由于将Jenkins任务设置并工作的地方复制造成的。

    tools {
        maven 'M3.5.4'
        jdk 'JDK1.8'  # delete this
    }