Hi Daniel,

Dennis wrote a gradle plugin that does most of the heavy lifting. You can find it there: https://github.com/Xyrality/gradle-wonder-plugin .

Building a simple single framework or app should be straightforward:
drop a build.gradle file at the root of your framework and follow Dennis example. You will probably need to add a dependency block as described here: https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.dsl.DependencyHandler.html .

Building a multi-framework requires a bit more work: you will need a build.gradle file per sub-project and a settings.gradle in the "meta-project".
This settings.gradle file is used to import all the subprojects.
If your repository is organized like this:
/MyProject/settings.gradle
/MyProject/Frameworks/MyFramework1/build.gradle
/MyProject/Frameworks/MyFramework2/build.gradle
/MyProject/Applications/MyApp/build.gradle

settings.gradle should contain:
include ":Frameworks:MyFramework1"
include ":Frameworks:MyFramework2"
include ":Frameworks:MyApp"

and dependencies in /MyProject/Applications/MyApp/build.gradle could look like:
dependencies {
    compile project(':Frameworks:MyFramework1')
    compile project(':Frameworks:MyFramework2')
}

You can also add a /MyProject/build.gradle file and factorize some of your stuff (like the buildscript block and the version):
buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        classpath 'com.xyrality.gradle:gradle-wonder-plugin:1.0.0'
    }
}
subprojects {
    version = '0.0.1'
}

Hope it's enough to get you started,
Yoann

On 11/08/15 18:33, Beatty, Daniel D CIV NAVAIR, 474300D wrote:
Hi gang,
For those of us not cool enough to come, do you have a podcast or something to 
enlighten us on Gradle?    Also, do you have solutions for the highly security 
conscious, or at least those who have to stay out of trouble and want to be 
cool.

V/R,

Daniel Beatty, Ph.D.,
IEEE Certified Software Development Professional (CSDP)
Computer Scientist
Code 474300D
1 Administration Circle. M/S 1109
China Lake, CA 93555
daniel.bea...@navy.mil
(760)939-7097




-----Original Message-----
From: webobjects-dev-bounces+daniel.beatty=navy....@lists.apple.com 
[mailto:webobjects-dev-bounces+daniel.beatty=navy....@lists.apple.com] On 
Behalf Of Yoann Canal
Sent: Tuesday, August 11, 2015 1:52 AM
To: Dennis Bliefernicht; WebObjects Development
Subject: Re: Gradle and Eclipse

Hi Dennis and thanks for your reply.

On 11/08/15 08:49, Dennis Bliefernicht wrote:


        Hi,


                On 10 Aug 2015, at 16:25, Yoann Canal < 
<mailto:yca...@sophiacom.fr> yca...@sophiacom.fr> wrote:

                Hi all,
                
                After the WOWODC and Dennis' talk, we started to migrate our 
build system to use gradle.
                The build works well on our staging servers. We had to modify 
the gradle-wonder-plugin to fit our needs
                and might issue a pull request if someone is interested.
                


        Always welcome :-) Out of curiosity: what kind of changes?


- download woproject.jar only once instead of once per framework
- remove reference to nexus.xyrality.net
- remove postgres dependencies
- allow setting webobjectsVersion / wonderVersion before applying the plugin 
since automatically added frameworks will use the default versions otherwise

Some other stuff that would probably only be of interest to us:
- use a fixed name for the generated tar.gz to have a fixed archive URL in 
Jenkins
- don't resolve wounit dependencies since it gets outdated jars

You can take a look at https://github.com/Sophiacom/gradle-wonder-plugin for 
those changes.


                However, we can't run the eclipse projects as generated with 
gradle:
                projects are correctly imported and built, tests run fine but 
running the project itself inside eclipse with WOLips results in:
                
                [2015-8-10 16:14:34 CEST] <main> Couldn't load properties file: 
/Users/ycanal/WebObjects.properties at path: /Users/ycanal
                [2015-8-10 16:14:34 CEST] <main> Unable to initialize WOProperties for 
reason: Cannot find JavaWebObjects framework ! java.lang.IllegalStateException: Unable to 
locate the "JavaWebObjects" bundle
                [2015-8-10 16:14:34 CEST] <main> A fatal exception occurred: 
<WOApplication>: Cannot be initialized.
                [2015-8-10 16:14:34 CEST] <main> com.webobjects.foundation.NSForwardException 
[java.lang.IllegalStateException] Unable to locate the "JavaWebObjects" 
bundle:<WOApplication>: Cannot be initialized.
                   at 
com.webobjects.appserver.WOApplication.<init>(WOApplication.java:918)
                   at 
er.extensions.appserver.ajax.ERXAjaxApplication.<init>(ERXAjaxApplication.java:30)
                   at 
er.extensions.appserver.ERXApplication.<init>(ERXApplication.java:1097)
                   at 
fr.sophiacom.corason.foundation.appserver.COCoreApplication.<init>(COCoreApplication.java:22)
                   at 
fr.sophiacom.app.NRApplication.<init>(NRApplication.java:19)
                   at fr.sophiacom.app.Application.<init>(Application.java:30)
                   at 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
                   at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
                   at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
                   at 
java.lang.reflect.Constructor.newInstance(Constructor.java:422)
                   at java.lang.Class.newInstance(Class.java:442)
                   at 
com.webobjects.appserver.WOApplication.main(WOApplication.java:547)
                   at 
er.extensions.appserver.ERXApplication.main(ERXApplication.java:866)
                   at fr.sophiacom.app.Application.main(Application.java:25)
                Caused by: java.lang.IllegalStateException: Unable to locate the 
"JavaWebObjects" bundle
                   at 
com.webobjects.appserver.WOResourceManager.__getJavaWebObjectsResourceAsStream(WOResourceManager.java:131)
                   at 
com.webobjects.appserver._private.WOProperties.initUserDefaultsKeys(WOProperties.java:317)
                   at 
com.webobjects.appserver.WOApplication._initWOApp(WOApplication.java:5743)
                   at 
com.webobjects.appserver.WOApplication.<init>(WOApplication.java:779)
                   ... 13 more
                
                Do you have any idea how to fix that ?
                Right now we are still keeping our old .project / build.xml 
/.classpath but we would like to avoid maintaining 2 configurations.
                


        How did you import the project exactly? Did you keep the old .project and 
.classpath around for that or did you do a fresh import using the gradle plugin? 
There could be some issue with the classpath, if the old files are around, best 
would be to have gradle generate new ones. Have a look at the project properties 
-> Build path, there should be no more references to WO libraries but only to 
JARs in yourhomefolder/.gradle/ (see attachment), even for all the frameworks.

We tried to use gradle + eclipse in a new workspace after a "gradle cleanEclipse 
eclipse" so the generated .classpath only reference .jar as in your screenshot.
It may be a missing (runtime)dependency but the exception is not really helpful 
:(


        Greetings
        Dennis

Yoann



  _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/ycanal%40sophiacom.fr

This email sent to yca...@sophiacom.fr

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to