On Wed, Jun 18, 2014 at 4:19 PM, Carlos Santana <csantan...@gmail.com> wrote:
> Joe what is the project structure that you don't like and think we should
> not adopt?
>
This structure is totally different than what we currently tell people
to use? How do we upgrade people?  Moving around the files is a
breaking change! For example, the project you generated doesn't have
an assets directory.  That's also different than the same code that I
generated last week with Gradle using Android Studio!! Yay standards!

> I'm trying to learn how to use gradle, since we have a project here that we
> want to align better with what most Android developers want to use.
>

Do we know that most Android developers want to use Gradle? I'm not
totally convinced of this yet, and I want to be as IDE-agnostic as
possible.  Most of the users of Cordova shouldn't have to care whether
we're using Gradle or Eclipse, and last year at OSCON when I talked to
someone who does Android training, they were still discouraging people
from using Android Studio.  That's the main strength of Ian's solution
so far.

> Here is what I tried out:
>
> *$ android create project -n FooName -t android-19 -p FooPath -g -k
> io.csantana -a FooMain -v 0.9.0*
>
> I was not sure what value to pass for "-v" Gradle Android plugin version.
> But it looks it worked and created an Android Gradle project in "FooPath"
>
> First time I ran ./gradlew it download a set of files, then after that any
> time I run it again it doesn't dowload I guess they are cache somewhere in
> my system.
>
> I didn't installed gradle, I just have the android sdk, and my path setup
> for both "tools" and "platform-tools" for $android and $adb
>

Yeah, I did the same command.  The gradle-wrapper is bundled with the
Android SDK.  We don't use the Android SDK to generate projects, we
run the update to fix our template,
which is still very Ant based.  It should be trivial once you update
the Android project to get the path from local.properties, but I
looked at the JS and wondered why we're returning exec.

>
> Stop reading if you don't want the details :-)
>
> $ android create project -n FooName -t android-19 -p FooPath -g -k
> io.csantana -a FooMain -v 0.9.0
>
> Created project directory: FooPath
>
> Created directory /Users/csantana23/foo/android/FooPath/src/main/java
>
> Created directory
> /Users/csantana23/foo/android/FooPath/src/main/java/io/csantana
>
> Added file FooPath/src/main/java/io/csantana/FooMain.java
>
> Created directory
> /Users/csantana23/foo/android/FooPath/src/instrumentTest/java
>
> Created directory
> /Users/csantana23/foo/android/FooPath/src/instrumentTest/java/io/csantana
>
> Added file FooPath/src/instrumentTest/java/io/csantana/FooMainTest.java
>
> Created directory /Users/csantana23/foo/android/FooPath/src/main/res
>
> Created directory /Users/csantana23/foo/android/FooPath/src/main/res/values
>
> Added file FooPath/src/main/res/values/strings.xml
>
> Created directory /Users/csantana23/foo/android/FooPath/src/main/res/layout
>
> Added file FooPath/src/main/res/layout/main.xml
>
> Created directory
> /Users/csantana23/foo/android/FooPath/src/main/res/drawable-xhdpi
>
> Created directory
> /Users/csantana23/foo/android/FooPath/src/main/res/drawable-hdpi
>
> Created directory
> /Users/csantana23/foo/android/FooPath/src/main/res/drawable-mdpi
>
> Created directory
> /Users/csantana23/foo/android/FooPath/src/main/res/drawable-ldpi
>
> Added file FooPath/src/main/AndroidManifest.xml
>
> Added file FooPath/build.gradle
>
> Created directory /Users/csantana23/foo/android/FooPath/gradle/wrapper
>
> $ tree FooPath/
>
> FooPath/
>
> ├── build.gradle
>
> ├── gradle
>
> │   └── wrapper
>
> │       ├── gradle-wrapper.jar
>
> │       └── gradle-wrapper.properties
>
> ├── gradlew
>
> ├── gradlew.bat
>
> ├── local.properties
>
> └── src
>
>     ├── instrumentTest
>
>     │   └── java
>
>     │       └── io
>
>     │           └── csantana
>
>     │               └── FooMainTest.java
>
>     └── main
>
>         ├── AndroidManifest.xml
>
>         ├── java
>
>         │   └── io
>
>         │       └── csantana
>
>         │           └── FooMain.java
>
>         └── res
>
>             ├── drawable-hdpi
>
>             │   └── ic_launcher.png
>
>             ├── drawable-ldpi
>
>             │   └── ic_launcher.png
>
>             ├── drawable-mdpi
>
>             │   └── ic_launcher.png
>
>             ├── drawable-xhdpi
>
>             │   └── ic_launcher.png
>
>             ├── layout
>
>             │   └── main.xml
>
>             └── values
>
>                 └── strings.xml
>
>
> 18 directories, 15 files
>
> $ ./gradlew
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/gradle/0.9.0/gradle-0.9.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/builder/0.9.0/builder-0.9.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/lint/lint/22.7.0/lint-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/sdk-common/22.7.0/sdk-common-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/manifest-merger/22.7.0/manifest-merger-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/ddms/ddmlib/22.7.0/ddmlib-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/common/22.7.0/common-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/builder-test-api/0.9.0/builder-test-api-0.9.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/builder-model/0.9.0/builder-model-0.9.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/sdklib/22.7.0/sdklib-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/lint/lint-checks/22.7.0/lint-checks-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/layoutlib/layoutlib-api/22.7.0/layoutlib-api-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/dvlib/22.7.0/dvlib-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/lint/lint-api/22.7.0/lint-api-22.7.0.pom
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/gradle/0.9.0/gradle-0.9.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/builder/0.9.0/builder-0.9.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/lint/lint/22.7.0/lint-22.7.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/sdk-common/22.7.0/sdk-common-22.7.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/manifest-merger/22.7.0/manifest-merger-22.7.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/ddms/ddmlib/22.7.0/ddmlib-22.7.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/common/22.7.0/common-22.7.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/builder-test-api/0.9.0/builder-test-api-0.9.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/build/builder-model/0.9.0/builder-model-0.9.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/sdklib/22.7.0/sdklib-22.7.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/lint/lint-checks/22.7.0/lint-checks-22.7.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/layoutlib/layoutlib-api/22.7.0/layoutlib-api-22.7.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/dvlib/22.7.0/dvlib-22.7.0.jar
>
> Download
> http://repo1.maven.org/maven2/com/android/tools/lint/lint-api/22.7.0/lint-api-22.7.0.jar
>
> :help
>
>
> Welcome to Gradle 1.10.
>
>
> To run a build, run gradlew <task> ...
>
>
> To see a list of available tasks, run gradlew tasks
>
>
> To see a list of command-line options, run gradlew --help
>
>
> BUILD SUCCESSFUL
>
>
> Total time: 16.845 secs
>
>
>
>
> On Wed, Jun 18, 2014 at 12:50 PM, Joe Bowser <bows...@gmail.com> wrote:
>
>> Found it, it's located here:
>> $ANDROID_SDK_PATH/tools/templates/gradle/wrapper
>>
>> On Wed, Jun 18, 2014 at 8:46 AM, Joe Bowser <bows...@gmail.com> wrote:
>> > Actually, it's not by default, but it does generate a gradle project
>> > if you use the right flags.  However, the project structure is
>> > radically different that I'm not sure we want to adopt it.  Still, we
>> > can find where the JAR is and copy it out of the Android SDK
>> > directory.
>> >
>> > On Wed, Jun 18, 2014 at 8:45 AM, Joe Bowser <bows...@gmail.com> wrote:
>> >> The Android Dev Tools generate a gradle project by default.  Where
>> >> does it store gradle-wrapper?
>> >>
>> >> On Wed, Jun 18, 2014 at 7:59 AM, Josh Soref <jso...@blackberry.com>
>> wrote:
>> >>> Ian Clelland wrote:
>> >>>>But Gradle is a Java project, and so the script invokes Java, and makes
>> >>>>use
>> >>>>of a bundled .jar file, and therein lies the problem: We're not
>> supposed
>> >>>>to
>> >>>>be including compiled JAR files in our repository.
>> >>>>
>> >>>>In this case, the .jar isn't actually part of our code; it's just used
>> by
>> >>>>the build, and including it makes it closer to trivial for developers
>> to
>> >>>>start building Cordova projects. It's easy to recreate, too, once you
>> have
>> >>>>Gradle installed, it's as easy as running "gradle wrapper" to get it to
>> >>>>rebuild the wrapper, jar and all. The catch is that you already have to
>> >>>>have gradle installed for that to work. Egg, meet chicken.
>> >>>
>> >>> Can we cheat and just have a script that uses curl/wget to retrieve
>> Gradle
>> >>> from Apache's dist directory?
>> >>>
>> >>> Or, could we publish Gradle to npm and then have our thing depend on
>> >>> cordova-gradle ?
>> >>>
>>
>
>
>
> --
> Carlos Santana
> <csantan...@gmail.com>

Reply via email to