Please see robovm.com for more information.
robovm / robovm-maven-plugin Goto Github PK
View Code? Open in Web Editor NEWRoboVM Maven plugin
RoboVM Maven plugin
Please see robovm.com for more information.
E.g. java.lang.ReflectiveOperationException
. The problem occurs since Oracle's RT uses a different serialVersionUID
than Android:
Caused by: java.io.InvalidClassException: java.lang.ReflectiveOperationException; local class incompatible: stream classdesc serialVersionUID = 2505831918131413020, local class serialVersionUID = 123456789
We need to come up with serialization which doesn't rely on Java's builtin serialization.
The docs say users can specify properties like arch/os as systemProperties in the pom.xml as a configuration for the surefire plugin. This does not appear to work, the properties need to be passed as CLI arguments to work.
Add goals to plugin/src/site/apt/index.apt.vm
.
Need to be able to specify which architectures to include via a property on the command line or in the pom.xml
.
We need it now when we have 64-bit support in simulator and on device.
Is there a current working example available anywhere?
The tests on the test server relies on the latest snapshot to be downloaded.
It's now deprecated and a warning will be printed when using it (see #25). We should keep it for the 1.3 release but then remove it in 1.4.
We have now moved the matching logic to the core project.
[ERROR] Failed to execute goal org.robovm:robovm-maven-plugin:1.6.0:ipad-sim (default) on project playn-hello-robovm: Failed to launch IOS Simulator: Unable to find a matching device [arch=x86_64, family=iPad, name=iPad-Retina, sdk=null] -> [Help 1]
Reproducable with latest PlayN and RoboVM 1.6.
It looks like this only supports iOS applications.
Thanks
See robovm/robovm#962.
Using Java 8 and JavaFX 8.
Stack trace is here for readability:
If you need anymore specific information just let me know and I will provide asap.
Thanks.
It's usually listed as a dependency but it should not be included in the classpath since it's already added to the compiler's bootclasspath. ;aybe setting it to provided
in the POM is the answer? This problem likely also applies to Gradle.
Below is the contents of an IPA created from the HelloWorld sample. We want to avoid the lib/robovm-rt-<version>.jar
.
Length Date Time Name
-------- ---- ---- ----
0 08-03-15 21:53 Payload/
0 08-03-15 21:53 Payload/HelloWorld.app/
0 08-03-15 21:53 Payload/HelloWorld.app/_CodeSignature/
6589 08-03-15 21:53 Payload/HelloWorld.app/_CodeSignature/CodeResources
965 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
965 08-03-15 21:53 Payload/HelloWorld.app/AppIcon29x29@2x~ipad.png
1496 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
526 08-03-15 21:53 Payload/HelloWorld.app/AppIcon29x29~ipad.png
1414 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
1414 08-03-15 21:53 Payload/HelloWorld.app/AppIcon40x40@2x~ipad.png
1909 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
693 08-03-15 21:53 Payload/HelloWorld.app/AppIcon40x40~ipad.png
1909 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
2986 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
2540 08-03-15 21:53 Payload/HelloWorld.app/AppIcon76x76@2x~ipad.png
1427 08-03-15 21:53 Payload/HelloWorld.app/AppIcon76x76~ipad.png
212866 08-03-15 21:53 Payload/HelloWorld.app/Background.png
0 08-03-15 21:53 Payload/HelloWorld.app/Base.lproj/
0 08-03-15 21:53 Payload/HelloWorld.app/Base.lproj/Main.storyboardc/
258 08-03-15 21:53 Payload/HelloWorld.app/Base.lproj/Main.storyboardc/Info.plist
5149 08-03-15 21:53 Payload/HelloWorld.app/Base.lproj/Main.storyboardc/Rw5-ns-KcI-view-xOT-TG-81E.nib
1070 08-03-15 21:53 Payload/HelloWorld.app/Base.lproj/Main.storyboardc/UIViewController-Rw5-ns-KcI.nib
28 08-03-15 21:53 Payload/HelloWorld.app/CodeResources
7963 06-17-15 13:52 Payload/HelloWorld.app/embedded.mobileprovision
13324688 08-03-15 21:53 Payload/HelloWorld.app/HelloWorld
1709 08-03-15 21:53 Payload/HelloWorld.app/Info.plist
9532 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
15450 08-03-15 21:53 Payload/HelloWorld.app/LaunchImage-700-Landscape@2x~ipad.png
12431 08-03-15 21:53 Payload/HelloWorld.app/LaunchImage-700-Landscape~ipad.png
14917 08-03-15 21:53 Payload/HelloWorld.app/LaunchImage-700-Portrait@2x~ipad.png
12110 08-03-15 21:53 Payload/HelloWorld.app/LaunchImage-700-Portrait~ipad.png
9890 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
11418 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
74225 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
11761 08-03-15 21:53 Payload/HelloWorld.app/[email protected]
0 08-03-15 21:53 Payload/HelloWorld.app/lib/
0 08-03-15 21:53 Payload/HelloWorld.app/lib/boot/
57521 08-03-15 21:53 Payload/HelloWorld.app/lib/boot/robovm-rt.jar
22 08-03-15 21:53 Payload/HelloWorld.app/lib/classes0.jar
12347 08-03-15 21:53 Payload/HelloWorld.app/lib/robovm-cocoatouch-1.5.1-SNAPSHOT.jar
2519 08-03-15 21:53 Payload/HelloWorld.app/lib/robovm-objc-1.5.1-SNAPSHOT.jar
57521 08-03-15 21:53 Payload/HelloWorld.app/lib/robovm-rt-1.5.1-SNAPSHOT.jar
485 08-03-15 21:53 Payload/HelloWorld.app/ResourceRules.plist
Fix incoming.
The gradle plugin can do this now
AbstractRoboVMMojo.unpackRoboVMDist()
checks if the compiler artifact has been extracted by an existance query on the directory. In case of local snapshot builds, this will not unpack the latest artifact.
There's an error in the code that results in the plugin NPE-ing in certain circumstances. The patch is so simple that I'm too lazy to fork the project and make a proper pull request:
--- i/plugin/src/main/java/org/robovm/maven/plugin/AbstractRoboVMMojo.java
+++ w/plugin/src/main/java/org/robovm/maven/plugin/AbstractRoboVMMojo.java
@@ -223,7 +223,7 @@ public abstract class AbstractRoboVMMojo extends AbstractMojo {
MavenProject p = project;
while (p != null && plugin == null) {
plugin = p.getPluginManagement().getPluginsAsMap().get("org.robovm:robovm-maven-plugin");
- p = p.getParent();
+ if (plugin == null) p = p.getParent();
}
if (plugin != null) {
getLog().debug("Reading RoboVM plugin configuration from " + p.getFile().getAbsolutePath());
Basically it scans up to the parent project unnecessarily after it found the plugin in that parent, and if the parent that had the plugin was the top-most-parent, then p ends up being null which causes NPE later. Even if it wasn't null, it would result in logging a spurious value. With the applied patch, it's correct.
I was going to turn it into a do while loop, but for some reason the first call to seek the plugin is via project.getPlugin
but the subsequent calls are via p.getPluginManagement().getPluginsAsMap().get
. Not sure if that's intentional or just some code being out of date. Anyway, just pointing that out.
It would be fine to also have an archetype for Maven.
mvn robovm:build
will build whatever binary is specified by the robovm.xml
config into the installDir
(target/robovm
).
Hi! When I compile my project with robovm-maven-plugin-0.7.1, I got this error:
Failed to execute goal org.robovm:robovm-maven-plugin:0.0.7.1:ios-device (default) on project basketball-ios: Execution default of goal org.robovm:robovm-maven-plugin:0.0.7.1:ios-device failed: Path /Users/turok/.m2/repository/org/robovm/robovm-dist/0.0.6/unpacked/robovm-0.0.6 is not a valid RoboVM install directory: version mismatch (expected: 0.0.7, was: 0.0.6)
In order to support Testflght and other alpha/beta distribution systems, it is needed to create an IPA with
get-task-allow=true
in the entitlements.
this enhancement is related to this thread: https://groups.google.com/forum/#!topic/robovm/UAHMzhBoK9E
Something like mvn robovm:lm-cli
and mvn robovm:lm-ui
. Would launch the license manager in CLI mode using LicenseManager.startCLI()
and UI mode using LicenseManager.forkUI()
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.