It is currently 20 May 2025, 03:27
   
Text Size

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

Postby 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

Postby 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.
dripton
 
Posts: 10
Joined: 30 Aug 2013, 23:17
Has thanked: 0 time
Been thanked: 1 time

Re: Working out the multi-module maven setup

Postby 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.
teferi
 
Posts: 8
Joined: 12 Feb 2014, 19:47
Has thanked: 0 time
Been thanked: 6 times

Re: Working out the multi-module maven setup

Postby drdev » 06 Apr 2014, 20:42

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
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
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

Postby 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

Postby excessum » 10 Apr 2014, 01:52

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?
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.
excessum
 
Posts: 177
Joined: 21 Oct 2013, 02:30
Has thanked: 0 time
Been thanked: 19 times

Re: Working out the multi-module maven setup

Postby drdev » 10 Apr 2014, 02:16

excessum wrote:
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?
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.
What is ForgeLocal? I just manually added the projects to Eclipse by importing the folders.
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

Postby 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.).
excessum
 
Posts: 177
Joined: 21 Oct 2013, 02:30
Has thanked: 0 time
Been thanked: 19 times

Re: Working out the multi-module maven setup

Postby drdev » 10 Apr 2014, 02:55

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.).
Updated in r25392. I'm going to hold off adding the mobile modules until I work out the kinks in those.
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

Postby 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
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

Postby 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.
User avatar
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

Postby 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. :P
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
You'll also need to add ANDROID_HOME to your Environment Variables that points to your android SDK. (On Windows, at least.)
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>
User avatar
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

Postby 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:

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
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

Re: Working out the multi-module maven setup

Postby KrazyTheFox » 27 Apr 2014, 05:10

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.
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.
User avatar
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

Postby Agetian » 27 Apr 2014, 05:18

KrazyTheFox wrote:
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.
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.
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!

- Agetian
Agetian
Programmer
 
Posts: 3486
Joined: 14 Mar 2011, 05:58
Has thanked: 683 times
Been thanked: 569 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 31 guests


Who is online

In total there are 31 users online :: 0 registered, 0 hidden and 31 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 31 guests

Login Form