我尝试调整构建过程以生成独立的可执行文件。有一些工具可以做到这一点,Packr似乎是完美的。据我所知,它正式支持我的maven。
花了大约一段googlin'我没有幸运找到一个简单的maven XML示例,它包含了一个打包器构建步骤。我也是Maven的新手,这让这更复杂。在我看来,应该有一个相当标准的XML块,其中只需要更改几个jar名称才能使其正常工作。
我也在eclipse工作并尝试为windows和linux构建可执行文件。
Packr:https://github.com/libgdx/packr
Maven中的Packr:https://mvnrepository.com/artifact/com.badlogicgames.packr/packr
答案 0 :(得分:5)
我编写了一个maven构建插件,它包装了packr java api。该插件围绕打包器的第2版构建。
答案 1 :(得分:3)
我也找不到任何maven插件。
在maven central中有1.2版的packr,但请记住,这是一个相当旧的版本(https://github.com/libgdx/packr/issues/58)。
您可以使用标准的exec-maven-plugin来绘制packr 1.2依赖项,然后运行它(参见http://www.mojohaus.org/exec-maven-plugin/examples/example-exec-using-plugin-dependencies.html)。
pom.xml构建文件中的相关片段可能类似于:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.5.0</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.badlogicgames.packr/packr -->
<dependency>
<groupId>com.badlogicgames.packr</groupId>
<artifactId>packr</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>package-native-windows</id>
<phase>package</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<includeProjectDependencies>false</includeProjectDependencies>
<includePluginDependencies>true</includePluginDependencies>
<executableDependency>
<groupId>com.badlogicgames.packr</groupId>
<artifactId>packr</artifactId>
</executableDependency>
<mainClass>com.badlogicgames.packr.Packr</mainClass>
<arguments>
<argument>packr-windows-config.json</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
如果您的pom.xml中已经有<build>
和<plugins>
部分,那么只需取出<plugin>
位并将其放入其中。
json配置文件可能类似于:
{
"platform": "windows",
"jdk": "jre-8u102-windows-x64.zip",
"executable": "MyApp",
"appjar": "target/MyApp-jar-with-dependencies.jar",
"classpath": [ "MyApp-jar-with-dependencies.jar" ],
"mainclass": "com.foo.MyAppMain",
"outdir": "target/native-windows"
}
有一件事需要注意,packr 1.2似乎删除了'outdir'目录,所以要小心使用'target'目录以外的东西。
如果它有所帮助,我个人最终使用launch4j使用launch4j-maven-plugin打包windows,并使用Oracle的标准javapackager工具通过javafx-maven-plugin打包linux / mac。我会链接到这两个,但StackOverflow告诉我,我没有足够的代表来包含两个以上的链接。
答案 2 :(得分:0)
1。在pom.xml中定义配置文件,适用于Windows,Linux和Mac OS X 2.假设我已经下载了packr.jar,只需调用必要的配置文件
<profiles>
<profile>
<id>windows-profile</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<arguments>
<argument>-jar</argument>
<argument>${basedir}/packaging/packr.jar</argument>
<argument>${basedir}/packaging/config-windows.json</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
要获得Windows发行版,请告诉Maven所需的配置文件:
clean install -Pwindows-profile
您还可以在下面看到config-windows.json:
{
"platform": "windows64",
"jdk": "C:/Program Files/Java/jdk1.8.0_144",
"executable": "file-sort",
"classpath": [
"target/file-sort-jar-with-dependencies.jar"
],
"mainclass": "com.iscorobogaci.fx.FxApplication",
"output": "../windows64"
}