使用GNULinux中的maven为Mac用户捆绑Java程序

使用GNULinux中的maven为Mac用户捆绑Java程序,第1张

使用GNU / Linux中的maven为Mac用户捆绑Java程序

以下是我在上的测试项目中所做的逐步 *** 作

Ubuntu 16.04.1 LTS

在您的情况下,步骤1至3将在GNU / Linux环境中完成,而最后一个将在Mac OS X中完成。

1.下载
JRE

由于您只需要

JRE
,所以最简单的方法是:

  1. 要转到下载区域,
  2. 点击
    JRE DOWNLOAD
  3. 选择
    tar.gz
    的版本
    JRE
    Mac OS X
    这是目前
    jre-8u112-macosx-x64.tar.gz
  4. 将存档内容解压缩到您将选择的文件夹中
    ${jre-folder}
    (例如
    /foo/bar/jre1.8.0_112.jre
    )。
2.创建我的测试项目

我典型的Maven项目结构:

测试项目└──src| └──主要| └──java| └──我的| └──pkg| └──MyClass.java└──pom.xml

我的班级

my.pkg.MyClass
实际上执行任意任务。在这里,它只是将系统属性转储到一个临时文件中,以便能够轻松地检查它是否已被调用:

package my.pkg;import java.io.BufferedWriter;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;public class MyClass {    public static void main(String[] args) throws IOException {        Path path = Files.createTempFile("MyClass", "txt");        try (BufferedWriter writer = Files.newBufferedWriter(path)) { System.getProperties()     .entrySet()     .stream()     .forEach(         entry -> {  try {      writer.write(entry.getKey() + "=" + entry.getValue() + "n");  } catch (IOException e) {      throw new IllegalStateException(e);  }         }     );        }    }}

我的

pom
档案:

<?xml version="1.0" encoding="UTF-8"?><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>TestProject</groupId>    <artifactId>TestProject</artifactId>    <version>0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <build>        <plugins> <plugin>     <groupId>org.apache.maven.plugins</groupId>     <artifactId>maven-compiler-plugin</artifactId>     <configuration>         <source>1.8</source>         <target>1.8</target>     </configuration> </plugin> <plugin>     <groupId>sh.tak.appbundler</groupId>     <artifactId>appbundle-maven-plugin</artifactId>     <version>1.1.0</version>     <configuration>         <mainClass>my.pkg.MyClass</mainClass>         <!-- For example         <jrePath>/foo/bar/jre1.8.0_112.jre</jrePath>         -->         <jrePath>${jre-folder}</jrePath>         <generateDiskImageFile>true</generateDiskImageFile>     </configuration>     <executions>         <execution>  <phase>package</phase>  <goals>      <goal>bundle</goal>  </goals>         </execution>     </executions> </plugin>        </plugins>    </build></project>
3.建立我的测试项目

只需

mvn package appbundle:bundle
从目录的根目录启动命令
TestProject

这将在 包含 for 的文件夹中构建 dmg文件 ,在这种情况下,它将称为。

target
JRE``Mac OSX
TestProject-0.1-SNAPSHOT.dmg

4.测试我的测试项目

在目标上

Mac OS X

  1. 双击 dmg文件 ,它将自动挂载映像,
  2. 然后您将可以双击
    TestProject.app
    ,您会看到一个图标出现,并由于测试程序很短而迅速消失。
  3. 您可以通过
    cat $TMPDIR/MyClass*
    从终端启动来检查它是否正常工作,然后您将看到由测试应用程序创建的临时文件的内容。

5.将资源添加到dmg文件

将资源添加到生成的 dmg文件 ,你可以使用

additionalResources
一个
fileSet

<plugin>    <groupId>sh.tak.appbundler</groupId>    <artifactId>appbundle-maven-plugin</artifactId>    <version>1.1.0</version>    <configuration>        ...        <additionalResources> <fileSet>     <directory>/path/to/my/resources/folder</directory>     <includes>         <include>*.pdf</include>     </includes> </fileSet>        </additionalResources>    </configuration>    ...</plugin>

此示例将把所有

pdf
文件添加
/path/to/my/resources/folder
到生成的 dmg文件中

6.将资源添加到应用文件

将资源添加到生成的 应用程序文件 ,你可以使用

additionalResources
一个
fileSet

<plugin>    <groupId>sh.tak.appbundler</groupId>    <artifactId>appbundle-maven-plugin</artifactId>    <version>1.1.0</version>    <configuration>        ...        <additionalBundledClasspathResources> <fileSet>     <directory>/path/to/my/resources/folder</directory>     <includes>         <include>*.pdf</include>     </includes> </fileSet>        </additionalBundledClasspathResources>    </configuration>    ...</plugin>

这个例子将添加所有

pdf
从文件
/path/to/my/resources/folder
到生成的 应用程序文件
/Contents/Java/lib
,他们将被自动纳入到应用程序的类路径,这样你就可以方便地访问它们。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5500048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存