GithubHelp home page GithubHelp logo

chrisdoyle / gradle-fury Goto Github PK

View Code? Open in Web Editor NEW
24.0 24.0 0.0 2.43 MB

We have moved to https://github.com/gradle-fury/gradle-fury/. Version 1.0.20 will be the final one at this repo. All issues and future work will be at the new location.

License: Apache License 2.0

gradle-fury's People

Contributors

chrisdoyle avatar spyhunter99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gradle-fury's Issues

Requirements def

Ugh running into issues on develop now and wanted to define a few requirements as i understand them

gradlew clean build

  • no gpg signatures
  • apk's signed as normal

gradlew build

  • no gpg signatures
  • apk's signed as normal

gradlew install

  • no gpg signatures
  • apk's signed as normal
  • publish to maven local
  • pom's are generated

on a SNAPSHOT built, with publish URL defined
gradlew publish

  • gpg signatures generated if possible
  • sha1 and md5 hashes generated
  • apk's signed as normal
  • publish to maven local
  • pom's are generated
  • files are uploaded to the repo

on a SNAPSHOT built, withOUT publish URL defined
gradlew publish

  • gpg signatures generated if possible
  • sha1 and md5 hashes generated
  • apk's signed as normal
  • publish to maven local
  • pom's are generated

on a RELEASE built, with publish URL defined
gradlew publish

  • gpg signatures generated if possible on all artifacts
  • sha1 and md5 hashes generated
  • apk's signed as normal
  • publish to maven local
  • pom's are generated
  • files are uploaded

is this correct?

Support pom/url field

We're missing the URL field....

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
....
<url>https://github.com/osmdroid/osmdroid</url>
....
</project>

Provide Example Gradle Initialization Scripts

From the Gradle documentation:
Chapter 42. Initialization Scripts

Specifically, I'd like to illustrate:

  • defining a global Maven repository configuration
  • ensuring that only a specified repository is used when running the build
  • mimicking the standard deployment behavior which Maven provides via server and repository configuration in settings.xml and the project POM (oh, how I miss thee...)

JAR projects have incorrect scope's, test dependencies are missing, name and description are missing

#43

ugh

JAR projects with a build.gradle properties as the following

dependencies {
    compile "org.apache.commons:commons-lang3:${project.property('commons-lang3.version')}"
    runtime 'com.esotericsoftware:kryo:4.0.0'
    testCompile "junit:junit:${project.property('junit.version')}"
}

Produces

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.chrisdoyle</groupId>
  <artifactId>hello-world-lib</artifactId>
  <version>1.0.7-SNAPSHOT</version>
  <dependencies>
    <dependency>
      <groupId>com.esotericsoftware</groupId>
      <artifactId>kryo</artifactId>
      <version>4.0.0</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.4</version>
      <scope>runtime</scope>
    </dependency>
  </dependencies>
  <packaging>jar</packaging>
</project>

Note that we're missing name and description, both dependencies are listed as runtime and it's missing all the test dependencies.

Support WAR file projects

Currently pom's for war projects are marked as JARs and only a jar is published. Obviously wrong.

Gradle Fury activation message

It'd be nice to have a simple "Applying GradleFury to module" or some other kind of visual indicator during the build to know it's doing something.

usage instructions?

trying to import into a folk for osmdroid.

getting

java.lang.IllegalStateException: buildToolsVersion is not specified.

```
```

Make the signArtifacts task run before publishing

Right now it rings in the configure phase of gradle's life cycle which means signing happens before compiler or anything else. We need to find another way to do this that enables a single step publishing

Generate pom for repo sync

Just an idea for a neat feature. If you develop offline and use maven to sync you local repo/nexus to the public Internet you probably make a dummy pom then manually copy your gradle project dependences into a pom. It would be awesome if we can exploit gradle fury's pom work to generate a dummy pom containing all child projects' deps.

add sample project with timestamped code

add the equivalent of filtered sources that contains a build time generated timestamp. useful for verifying that the uploaded signature was actually from the same source. this may require disconnecting the 'publish' task from 'build'

enable travis ci

build the sample project, then verify that the artifacts are published to a repo

POM dependency generation shall support type and scope

Oh, Gradle...

The POM generation task shall accurately capture both <scope /> and <classifier /> values in the <dependency /> declarations. I found a rather disheartening post related to the subject:

https://discuss.gradle.org/t/maven-publish-plugin-generated-pom-making-dependency-scope-runtime/7494

This ticket is an attempt to "Use the 'pom.withXml' hook to fix the dependency scopes as needed" method as a "solution", as proposed in Mr. Niederwieser's response. Sigh.

Should AAR's pom.xml have dependencies declared?

Hey!

I cloned the repo and ran gradle build publishToMavenLocal in order to see how it works and whether it fits my needs or not. It installed the artefacts into local repo well though I discovered that hello-world-aar's pom.xml file did not have dependencies specified. Is it so intentionally? Is it something that is okay for an AAR?

Wondering because there are dependencies for hello-world-lib module which a JAR file... I expected the AAR to have it too?

Cheers, Pavlo

minSdkVersion from module build.gradle gets overwritten

I'm trying to switch osmdroid over to this library and in the gradle.properties file, minSdkVersion is 8, however several modules require a higher minSdkVersion and have declared that in the build.gradle file. The module looks like ( just the relevant parts)

android {
    compileSdkVersion 'Google Inc.:Google APIs:23'
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "org.osmdroid.google.sample"
        minSdkVersion 9
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false
    }
}

gradle.properties looks like this

android.buildToolsVersion=23.0.2
android.compileSdkVersion=23
android.minSdkVersion=8
android.targetSdkVersion=23

build output

:GoogleWrapperSample:processDebugManifest
/Users/xxxx/osmdroid/GoogleWrapperSample/src/main/AndroidManifest.xml:4:5-73 Error:
    uses-sdk:minSdkVersion 8 cannot be smaller than version 9 declared in library [com.google.android.gms:play-services:8.4.0] /Users/xxxx/osmdroid/GoogleWrapperSample/build/intermediates/exploded-aar/com.google.android.gms/play-services/8.4.0/AndroidManifest.xml
    Suggestion: use tools:overrideLibrary="com.google.android.gms.all" to force usage

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.

:GoogleWrapperSample:processDebugManifest FAILED

I'm willing to bet the root cause is the lack of an extra if (!defined) type of check for minSdkVersion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.