Working out the multi-module maven setup
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Working out the multi-module maven setup
by drdev » 06 Mar 2014, 06:14
As an update, I was able to successfully convert forge-m-base to a Maven project, at least in so much that I now have the references pulled in that I needed. I don't know what more will need to be done when it comes time to do a release or snapshot build of the mobile game, but I'm not there yet, so there's time to figure that out later.
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Working out the multi-module maven setup
by dripton » 06 Mar 2014, 15:33
The code works for me now from Eclipse if I go into Run Configurations / Arguments and set the working directory to $HOME/workspace/ForgeLocal/forge-gui (Will vary with exactly where you have things checked out, but basically, run it from forge-gui so relative paths like "res/skins/" work.)
It would of course be better if it worked regardless of where you set the working directory.
It would of course be better if it worked regardless of where you set the working directory.
Re: Working out the multi-module maven setup
by teferi » 12 Mar 2014, 08:57
People sorry for the long silence, but we had a hard deadline at work and basically had to pull double shifts to reach it.
The problem we currently face is that the code makes assumptions on where resources are located in relation to where the application is launched. We should strive to access the resources from the classpath (where we can make assumptions on fqn inside the classpath) which would allow us to reach the resources wherever they are as long as they are in the classpath somewhere be it in a directory or inside a jar file.
The problem we currently face is that the code makes assumptions on where resources are located in relation to where the application is launched. We should strive to access the resources from the classpath (where we can make assumptions on fqn inside the classpath) which would allow us to reach the resources wherever they are as long as they are in the classpath somewhere be it in a directory or inside a jar file.
Re: Working out the multi-module maven setup
by drdev » 06 Apr 2014, 20:42
So I haven't heard anything back about this, and I've reached the point where I've had to duplicate so much gui code that I no longer feel comfortable with it. So I'm going to attempt it myself. If anyone has any concerns, please let me know.drdev wrote:On that note, Max, I'm thinking we should have a shared gui module that both the current forge-gui and forge-m-base can reference. I'm finding myself needing to duplicate code from forge-gui, and I'd like to avoid that.
Could you create a new module named forge-gui-desktop and move everything from forge-gui to forge-gui-desktop except for the res/ folder? I think forge-gui should be the name of the shared gui module (which will contain resource/asset files in addition to shared code), and forge-gui-desktop should contain the desktop implementation of Forge that uses Swing.
I will then rename forge-m-base, forge-m-desktop, and forge-m-android to forge-gui-mobile, forge-gui-mobile-dev, and forge-gui-android respectively to follow a more consistent naming convention. I'll then work on migrating pieces of forge-gui-desktop back over to forge-gui so they can be shared amongst all gui implementions.
Thanks.
-Dan
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Working out the multi-module maven setup
by drdev » 08 Apr 2014, 23:18
As mentioned in the other thread, I just committed the new forge-gui-desktop module in r25373. As part of this, I moved the main pom.xml file for Maven builds to the new module. However, the res/ folder and files like README.txt and CHANGES.txt remained in forge-gui, so the pom.xml file isn't pointing to them anymore. Suggestions? Will backwards relative paths from ${basedir} work?
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Working out the multi-module maven setup
by excessum » 10 Apr 2014, 01:52
How do you find and import the new Maven projects? I can see the folders for the new modules in ForgeLocal but the old "Maven -> Import existing project" from ForgeLocal only shows the original five modules.drdev wrote:As mentioned in the other thread, I just committed the new forge-gui-desktop module in r25373. As part of this, I moved the main pom.xml file for Maven builds to the new module. However, the res/ folder and files like README.txt and CHANGES.txt remained in forge-gui, so the pom.xml file isn't pointing to them anymore. Suggestions? Will backwards relative paths from ${basedir} work?
Re: Working out the multi-module maven setup
by drdev » 10 Apr 2014, 02:16
What is ForgeLocal? I just manually added the projects to Eclipse by importing the folders.excessum wrote:How do you find and import the new Maven projects? I can see the folders for the new modules in ForgeLocal but the old "Maven -> Import existing project" from ForgeLocal only shows the original five modules.drdev wrote:As mentioned in the other thread, I just committed the new forge-gui-desktop module in r25373. As part of this, I moved the main pom.xml file for Maven builds to the new module. However, the res/ folder and files like README.txt and CHANGES.txt remained in forge-gui, so the pom.xml file isn't pointing to them anymore. Suggestions? Will backwards relative paths from ${basedir} work?
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Working out the multi-module maven setup
by excessum » 10 Apr 2014, 02:42
I was referring to the instructions given in viewtopic.php?f=52&t=1093&start=180#p145531. I guess ForgeLocal is just what Eclipse calls the root folder where everything from the repository is located. Manually viewing the pom.xml in that folder only shows the original modules, not the new ones you added even though the folders are present (forge-gui-desktop, etc.).
Re: Working out the multi-module maven setup
by drdev » 10 Apr 2014, 02:55
Updated in r25392. I'm going to hold off adding the mobile modules until I work out the kinks in those.excessum wrote:I was referring to the instructions given in viewtopic.php?f=52&t=1093&start=180#p145531. I guess ForgeLocal is just what Eclipse calls the root folder where everything from the repository is located. Manually viewing the pom.xml in that folder only shows the original modules, not the new ones you added even though the folders are present (forge-gui-desktop, etc.).
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Working out the multi-module maven setup
by drdev » 24 Apr 2014, 02:59
So I'm at my wits end. I've spent all day trying to figure out a way to get forge-gui-android to run on an android device, and nothing I've tried has worked. Could somebody with more Maven or Android experience please help out. I'd greatly appreciate it.
The main issue at the moment is that it crashes on startup from being unable to load class definitions (search NoClassDefFoundError). Check out this stackoverflow post for some potentially useful information.
Thanks.
-Dan
The main issue at the moment is that it crashes on startup from being unable to load class definitions (search NoClassDefFoundError). Check out this stackoverflow post for some potentially useful information.
Thanks.
-Dan
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Working out the multi-module maven setup
by KrazyTheFox » 24 Apr 2014, 03:56
I'll take a gander at it tomorrow, though it'll be later in the evening before I have time to.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Working out the multi-module maven setup
by KrazyTheFox » 26 Apr 2014, 19:51
I'm getting closer to having a working build process for the Android version. I just got it to unpack all the sources correctly from all its dependencies, so hopefully I'll have a .apk file by tonight that runs.
Edit: So far I've gotten it to generate a .apk file that appears to be correct, but refuses to run (can't find the main class). It's getting there.
Edit 2: Got Main to compile and build into a correct .apk that installs and runs... until it tries to load the GDX libraries. Almost there.
Edit 3: Loads and initializes GDX! I need to add the res/ folder now so that it can load assets and not crash from null pointers.
Edit 4:
The game now runs on Android, but crashes immediately due to missing resources and other bugs. I have no idea where to put these or how to fix them, so that will need to be done before a working build can be made.
Using the forge-gui-mobile/pom.xml file, you can generate the .apk with the following maven command:
Also, you'll need to add the following to your Maven settings.xml:
Edit: So far I've gotten it to generate a .apk file that appears to be correct, but refuses to run (can't find the main class). It's getting there.
Edit 2: Got Main to compile and build into a correct .apk that installs and runs... until it tries to load the GDX libraries. Almost there.

Edit 3: Loads and initializes GDX! I need to add the res/ folder now so that it can load assets and not crash from null pointers.
Edit 4:
The game now runs on Android, but crashes immediately due to missing resources and other bugs. I have no idea where to put these or how to fix them, so that will need to be done before a working build can be made.
Using the forge-gui-mobile/pom.xml file, you can generate the .apk with the following maven command:
- Code: Select all
mvn clean install android:unpack android:proguard
Also, you'll need to add the following to your Maven settings.xml:
- Code: Select all
<profiles>
<profile>
<id>android-settings</id>
<properties>
<android.sdk.path>PATH HERE</android.sdk.path>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>android-settings</activeProfile>
</activeProfiles>
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Working out the multi-module maven setup
by Agetian » 27 Apr 2014, 04:59
This is probably the most relevant thread for this report since it's probably related... as of rev 25649, I can no longer compile Forge on my desktop, the compilation (e.g. Clean and Build from NetBeans) fails immediately with the following:
- Agetian
- Code: Select all
Scanning for projects...
Apr 27, 2014 8:56:56 AM org.sonatype.guice.bean.reflect.Logs$JULSink warn
WARNING: Error injecting: org.eclipse.aether.internal.impl.DefaultRepositorySystem
com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.eclipse.aether.impl.ArtifactDescriptorReader was bound.
while locating org.eclipse.aether.internal.impl.DefaultRepositorySystem
1 error
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:974)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1018)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:59)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1018)
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
at org.sonatype.guice.plexus.binders.PlexusRequirements$RequirementProvider.get(PlexusRequirements.java:217)
at org.sonatype.guice.plexus.binders.ProvidedPropertyBinding.injectProperty(ProvidedPropertyBinding.java:45)
at org.sonatype.guice.bean.inject.BeanInjector.injectMembers(BeanInjector.java:53)
at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:128)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:117)
at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:32)
at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:91)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:89)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:259)
at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1018)
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
at org.sonatype.guice.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:138)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1018)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:59)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
at org.sonatype.guice.bean.locators.EntryListAdapter$ValueIterator.next(EntryListAdapter.java:112)
at java.util.AbstractCollection.addAll(AbstractCollection.java:341)
at org.apache.maven.DefaultMaven.getLifecycleParticipants(DefaultMaven.java:538)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:270)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Apr 27, 2014 8:56:56 AM org.sonatype.guice.bean.reflect.Logs$JULSink warn
WARNING: Error injecting: com.jayway.maven.plugins.android.phase_prebuild.AarMavenLifecycleParticipant
com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.eclipse.aether.impl.ArtifactDescriptorReader was bound.
while locating org.eclipse.aether.internal.impl.DefaultRepositorySystem
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
while locating org.eclipse.aether.RepositorySystem
while locating com.jayway.maven.plugins.android.phase_prebuild.AarMavenLifecycleParticipant
1 error
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:974)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
at org.sonatype.guice.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:138)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1018)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:59)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
at org.sonatype.guice.bean.locators.EntryListAdapter$ValueIterator.next(EntryListAdapter.java:112)
at java.util.AbstractCollection.addAll(AbstractCollection.java:341)
at org.apache.maven.DefaultMaven.getLifecycleParticipants(DefaultMaven.java:538)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:270)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Internal error: com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.eclipse.aether.impl.ArtifactDescriptorReader was bound.
while locating org.eclipse.aether.internal.impl.DefaultRepositorySystem
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
while locating org.eclipse.aether.RepositorySystem
while locating com.jayway.maven.plugins.android.phase_prebuild.AarMavenLifecycleParticipant
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
while locating org.apache.maven.AbstractMavenLifecycleParticipant annotated with @com.google.inject.name.Named(value=AarMavenLifecycleListener)
1 error
-> [Help 1]
org.apache.maven.InternalErrorException: Internal error: com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.eclipse.aether.impl.ArtifactDescriptorReader was bound.
while locating org.eclipse.aether.internal.impl.DefaultRepositorySystem
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
while locating org.eclipse.aether.RepositorySystem
while locating com.jayway.maven.plugins.android.phase_prebuild.AarMavenLifecycleParticipant
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
while locating org.apache.maven.AbstractMavenLifecycleParticipant annotated with @com.google.inject.name.Named(value=AarMavenLifecycleListener)
1 error
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:168)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.eclipse.aether.impl.ArtifactDescriptorReader was bound.
while locating org.eclipse.aether.internal.impl.DefaultRepositorySystem
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
while locating org.eclipse.aether.RepositorySystem
while locating com.jayway.maven.plugins.android.phase_prebuild.AarMavenLifecycleParticipant
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
at ClassRealm[extension>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.1, parent: sun.misc.Launcher$AppClassLoader@6bd46c20]
while locating org.apache.maven.AbstractMavenLifecycleParticipant annotated with @com.google.inject.name.Named(value=AarMavenLifecycleListener)
1 error
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:974)
at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
at org.sonatype.guice.bean.locators.EntryListAdapter$ValueIterator.next(EntryListAdapter.java:112)
at java.util.AbstractCollection.addAll(AbstractCollection.java:341)
at org.apache.maven.DefaultMaven.getLifecycleParticipants(DefaultMaven.java:538)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:270)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
... 11 more
To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.
For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/InternalErrorException
- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Working out the multi-module maven setup
by KrazyTheFox » 27 Apr 2014, 05:10
Well that's annoying. It lets me build it over here. I've taken that out and pushed a commit so that the desktop game will build—it's getting too late to work on a real fix. Once I get time again I'll see about making it work correctly. In the meantime, it should still be possible to build the android portion using the steps above, it just won't be a full module.Agetian wrote:Removing the forge-gui-mobile module from pom.xml helps (and the game compiles after that), but it'd be nice if it was possible to get it to compile without having to disable and enable the mobile module every time... Please help if possible.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Working out the multi-module maven setup
by Agetian » 27 Apr 2014, 05:18
Thanks for looking into it, I appreciate your work on the mobile project! Hopefully it'll be possible to get all of them in one maven setup eventually!KrazyTheFox wrote:Well that's annoying. It lets me build it over here. I've taken that out and pushed a commit so that the desktop game will build—it's getting too late to work on a real fix. Once I get time again I'll see about making it work correctly. In the meantime, it should still be possible to build the android portion using the steps above, it just won't be a full module.Agetian wrote:Removing the forge-gui-mobile module from pom.xml helps (and the game compiles after that), but it'd be nice if it was possible to get it to compile without having to disable and enable the mobile module every time... Please help if possible.
- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Who is online
Users browsing this forum: Google [Bot] and 32 guests