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