如何在IntelliJ IDEA中构建OS X Java应用程序包?

如何在IntelliJ IDEA中构建OS X Java应用程序包?,java,macos,intellij-idea,Java,Macos,Intellij Idea,我正试图用IntelliJ IDEA为mac构建一个Java应用程序。苹果开发者文档说我需要做一个配置,以支持停靠图标、应用程序名称等,但我不确定如何在IntelliJ中设置构建配置来完成所有这些。有人能解释一下吗?IntelliJ IDEA不支持创建这样的捆绑包。您可以使用Ant或一些外部工具来自动化这个过程。也许这不是您所希望的答案,但我认为ide构建在开发过程中是很好的,但是应该始终有一种平台(ide、os等)独立的发布方式。我更喜欢,它可以与想法完美结合。据我所知,Ant本身不支持mac

我正试图用IntelliJ IDEA为mac构建一个Java应用程序。苹果开发者文档说我需要做一个配置,以支持停靠图标、应用程序名称等,但我不确定如何在IntelliJ中设置构建配置来完成所有这些。有人能解释一下吗?

IntelliJ IDEA不支持创建这样的捆绑包。您可以使用Ant或一些外部工具来自动化这个过程。

也许这不是您所希望的答案,但我认为ide构建在开发过程中是很好的,但是应该始终有一种平台(ide、os等)独立的发布方式。我更喜欢,它可以与想法完美结合。据我所知,Ant本身不支持mac os应用程序包,但我在互联网上找到了一个扩展。

这是Oracle Java7文档的一部分


您可以使用maven插件并将其打包为适用于OS X的*.app。我使用这个插件,它似乎是最新支持的插件。有关详细信息,请参阅此存储库


sh.tak.appbundler
以下是我如何编辑它(MacOS 10.10+IntelliJ IDEA 15+JDK 1.8):

  • 下载Oracle并将其复制到项目的/lib目录中
  • 文件→ 项目结构→ 人工制品→ 添加(+)→ 罐子→ 从具有依赖项的模块。。。→ 选择主课→ 嗯
  • 建造→ 构建工件。。。→ 生成jarin/out/artifacts/
  • 在项目根目录下创建build.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project name="Test" default="bundle-test" basedir=".">
        <taskdef name="bundleapp" 
            classname="com.oracle.appbundler.AppBundlerTask" 
            classpath="lib/appbundler-1.0.jar" />    
        <target name="bundle-test">
            <bundleapp outputdirectory="out"
                name="Test"
                displayname="Test"
                identifier="Test"
                mainclassname="Main">
                <classpath file="out/artifacts/test_jar/test.jar" />
            </bundleapp>
        </target>
    </project>
    
    
    
  • 在Ant构建面板(视图→ 工具窗口→ Ant Build)单击添加(+)并选择Build.xml,然后按Run按钮
  • 在项目的/out目录中查找应用程序

  • 不支持该应用程序。你有GUI吗?报告显示,一些用于发布的功能(启动屏幕、菜单项、桌面快捷方式、应用程序标题/名称)也适用于OS X(而JWS也适用于Windows&*nix;),请尝试至少总结您链接到的内容的一般要点。一旦链接失效,您的答案将变得几乎无用。高级安装程序现在支持IntelliJ IDEA项目,非常易于使用,并支持Windows和MacOS:
        <dependency>
            <groupId>com.apple</groupId>
            <artifactId>AppleJavaExtensions</artifactId>
            <version>1.6</version>
        </dependency>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="Test" default="bundle-test" basedir=".">
        <taskdef name="bundleapp" 
            classname="com.oracle.appbundler.AppBundlerTask" 
            classpath="lib/appbundler-1.0.jar" />    
        <target name="bundle-test">
            <bundleapp outputdirectory="out"
                name="Test"
                displayname="Test"
                identifier="Test"
                mainclassname="Main">
                <classpath file="out/artifacts/test_jar/test.jar" />
            </bundleapp>
        </target>
    </project>