Czemu firmy używają gradle zamiast maven? Strasznie dużo frustracji mnie kosztuje współpraca z tym narzędziem. Sam fakt, że trzeba się j---ć z ustawianiem logów przy testach jest nieporozumieniem + każdy projekt może mieć inną strukturę plików bo taki pomysł miał developer. W mavenie wiesz co jest i proste jak budowa cepa. Ktoś wykorzystuje te featury gradla?

#programista15k #java #maven #gradle #programowanie
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@famir96: Problem z gradlem jest taki, że pozwala na zbyt dużo. Bez problemu możesz nadpisać standardowe taski, czy rozszerzyć je. Z jednej strony brzmi przydatne, jednak niekoniecznie dobrze z tym się pracuje jak standardowy task nagle zachowuje się inaczej niż w opisie dokumentacji. Z drugiej strony w mavenie aby zrobić coś niestandardowego, to jesteś skazany na pluginy, a w gradle piszesz po prostu swojego taska. Nowe projekty powstają najczęściej z
  • Odpowiedz
Możecie podrzucić mi swojego builda gradle ze spockiem?

coś mam spartolone se:

Receiver class org.codehaus.groovy.macro.transform.MacroMethodsCache does not define or inherit an implementation of the resolved method 'abstract java.lang.String getDisablePropertyName()' of abstract class org.codehaus.groovy.transform.stc.AbstractExtensionMethodCache.


a
a.....e - Możecie podrzucić mi swojego builda gradle ze spockiem?

coś mam spartolo...

źródło: comment_16711036429bDkcle9XHBt7OeGdKHAQS.jpg

Pobierz
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@alex-fortune: jeśli chodzi o języki:

C++: tu było całkiem dobrze, bo C++ ma na tyle prostacki i zły system budowania, że Bazel z automatu staję się przejściem w XXI wiek. Szybkie czasy kompilacji, trzymanie developerów za mordę (żeby nie wymyślali głupich rozwiązań) i budowanie wszystkiego ze źródeł to super zalety w porównaniu do popularnego CMake. Było dużo problemów z pierdołami typu ktoś w googlu uznał, że pliki .cpp będzie się budowało poprzez komendę gcc (zamiast g++), co w 99% działa a w 1% trzeba się bawić. Albo nie damy wsparcia dla precompiled headers, bo w googlu tego nie używamy, zamiast tego możesz użyć clangowych modułów, które używane są tylko w googlu

Python: słabo, domyślny support nie ma wsparcia dla pipa (bo w googlu nie używają). Pamiętam, że wybór odpowiedniego interpretera był słabo rozwiązany, choć teraz jak patrzyłem ostatnio na githubowy rules_python jest coraz lepiej (https://github.com/bazelbuild/rules_python#toolchain-registration , w sumie to ważny plus, że roku na rok jest DUŻO lepiej). No i wsparcie dla IDE: Pycharm nie ogarniał kompletnie zależności pobranych z pipa (bo w googlu nie używają) przez co na dobrą sprawę wsparcia nie było
Java: tu było w miarę dobrze. Oczywiście były problemy jak ktoś użył jakiegoś fikuśnego pluginu do mavena,
  • Odpowiedz
@joolekk: @pyroxar: jakby co to w gradle piszesz albo w groovy ( bez kts. czyli build.gradle ) albo w kotlinie i wtedy plik ma nazwę (z kts czyli build.gradle.kts ) i dlatego może jak kopiowałeś example to pokopoiwałeś część z groovy a część z kotlina i nie działa.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Cześć, mam problem z #jenkins i #gradle. Próbuję zautomatyzować podpisywanie aplikacji Android. Keystore, alias i hasła potrzebne do tego trzymam w HashiCorp na Jenkinsie.

Pipeline mam skonfigurowane tak, że przy pomocy sh uruchamiana jest komenda z gradle. Do tej komendy jako parametry potrzebuję przekazać tę wartości, które siedzą w vaulcie. Gradle na podstawie tych parametrów bierze plik keystore i resztę i podpisuje apke podczas kompilacji.

Problem polega na tym, że przy przekazywaniu wartości do wywołania skryptu wstawia mi “*****".
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 2
@annotate: Nie, macie rację. Już sobie potwierdziłem, że w logach są gwiazdki, ale job ma normalne wartości. Dopiero jak zapisałem je do pliku to zobaczyłem. Już jestem blisko, być może było wszystko ok tylko zły plik jest pod ścieżką z keystore ( ͡° ͜ʖ ͡°) Jutro będę weryfikował.

@another_throwaway23

Dzięki za pomoc :)
  • Odpowiedz
hej, dodałem artefakty do prywatnego nexusa (jar+pom pobrane z maven central, nie wiem czy tak się robi), projekt ładnie je zasysa przez Gradle, ale drzewko zależności różni się od tego kiedy pobieram je za pomocą mavenCentral:

+--- com.rabbitmq:amqp-client:5.14.0
| \--- org.slf4j:slf4j-api:1.7.32

gdy pobieram je z prywatnego repo to jest tylko pierwsza linijka. jeżeli dobrze rozumiem to nie zaciągają się zależności tego artefaktu? tylko dlaczego? slf4j-api jest w tej wersji na prywatnym nexusie.
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@globalbus: ja miałem w głowie jak to robiłem, że spoko pomysłem jest zrobić takie prywatne hosted repository z ogólnodostępnymi artefaktami, bo wtedy masz kontrolę nad artefaktami i ich wersjami, których używają inni ludzie w swoich narzędziach. i bym się wtedy totalnie odciął od mavenCentral().
  • Odpowiedz
i bym się wtedy totalnie odciął od mavenCentral().


@novak00: w praktyce wszyscy będą na ciebie k----ć :D
Możesz sobie zrobić kopię artefaktów potrzebnych do budowania/uruchamiania konkretnej wersji aplikacji, ale w dużej skali to jest ból d--y. Zwłaszcza, że polityka zaciągania tranzytywnych zależności nie jest sztywna, więc dla jednej wersji gradle możesz uzyskać inny zestaw artefaktów niż dla drugiej. Jednemu developerowi się zbuduje, drugiemu nie, choć to ten sam kod źródłowy.
  • Odpowiedz
Próbuję sobie zaciągnąć dependencje Swaggera2 do Gradle poprzez:

compile group: 'io.springfox', name: 'springfox-swagger2', version: '3.0.0'

compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '3.0.0'


A dostaję błąd:
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kezioezio: Gradle zmieniło swoją konfigurację zależności z podobnej do maven-a do swojej np compile zmieniło się na compileOnly. Więcej będziesz miał w dokumentacji gradle
Sprawdź czy próbujesz dodać zależności w bloku dependencies {} i upewnij się, że sam blok dependencies jest w odpowiednim bloku.
  • Odpowiedz
Mirki mam pytanie odnośnie #java Mam do zrobienia projekt na studia, jakaś aplikacja okienkowa i przy tworzeniu projektu #gradle pokazuje cos takiego.

Could not open init generic class cache for initialization script 'C:\Users\PCCOMP~1\AppData\Local\Temp\wrapperinit.gradle' (C:\Users\PC COMPUTER\.gradle\caches\6.7\scripts\bd6pxnrf9ujld1apdh2mayfet).

BUG! exception in phase 'semantic analysis' in source unit 'BuildScript_' Unsupported class file major version 60


To jest problem z tym, że gradle nie wspiera wersji 16 javy czy można to
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mireczki, może ktoś się spotkał z podobnym problemem. Mam projekt na gradlu, który korzysta z innego projektu (konkretnie tylko z kilku klas) i odwołuje się do niego poprzez 'implementation <ścieżka>' w pliku build.gradle. Co pewien czas losowo dla różnych testów dostaję błąd java.lang.ClassNotFoundException dla klas z tego pobocznego projektu.

Gdzie może leżeć problem? Czy może tutaj chodzić o konfigurację pliku build.gradle? #selenium #gradle #programowanie
Będę wdzięczna
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Cześć,
wiecie może jak użyć wzorca bill of materials w javie (najlepiej gradle)?

ja zrobiłem testowo 3 projekty:
1) dependency - przykładowy moduł, który ma być użyty w parencie, a którego wersja znajduje się w projekcie "bom" (wykonuje taski clean install, https://github.com/jaksak/bom-test/blob/master/dependency/build.gradle )
2) bom - projekt, w którym mam wpisane wersje modułów dla parenta (wykonuje publishToMavenLocal, https://github.com/jaksak/bom-test/blob/master/bom/build.gradle )
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@filozofw: nie próbuj przenosić filozofii mavena na gradle. Odcinamy to grubą kreską.

1. od paru wersji gradle wstecz, istnieją takie configuration jak api i implementation. Używanie tego drugiego chroni przez mavenową patologią, czyli wyciekiem tranzytywnych zależności do consumerów biblioteki.
Dajmy na to, że w module opakowujesz sobie funkcjonalności jgita. Biblioteka jgit będzie widziana tylko przez ten moduł, reszta ma nie wiedzieć o jego istnieniu w czasie kompilacji (będzie w runtime dependencies). Jak ktoś w życiu widział OSGi, to podejście wyda mu się naturalne (Import-Package)

2. Nie powinno się hardkodować wszystkich zależności w projekcie. Dopiero kiedy wychodzi jakiś konflikt, można dać wskazówki do gradle, jak powinien
  • Odpowiedz
@filozofw: pamiętaj jeszcze o elementach gradle dsl - subprojects {} i allprojects {}, tam można oddelegować część odpowiedzialną za wybieranie wersji. Wbrew pozorom, dobrze zorganizowany duży projekt radzi sobie bez sztuczek w wersjonowaniu.
Na ten moment pracowy główny projekt - 300+ modułów, z mavenem już bym się pochlastał. Część logiki powynosiłem do pluginu dołączanego w każdy projekt i tam jest wymuszona konkretna struktura (np pliki z deklaracją bloku dependencies lądują
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@another_throwaway23: compile jeszcze działa, ale jest deprecated. Po prostu implementation/compile to funkcja, a zgodnie ze składnią kotlina nie można oddzielić argumentów funkcji średnikiem. Tak samo przy nazwanych argumentach stosuje się znak =. Ma to sens kiedy podajemy argumenty w innej niż domyślna kolejności.
  • Odpowiedz
Czołem Mirki z tagu #programowanie i #naukaprogramowania. Testuję sobie chmurę #microsoft #azure i chciałbym przenieść na nią hello worlda zbudowanego w #gradle. Drugiego hello worlda zbudowanego w #maven udało mi się przenieść bez problemu, zbudowałem jarkę komendą "mvn clean package" w #powershell i następnie za pomocą komendy "mvn azure-webapp:deploy" poszła do chmury. Narazie tego hello worlda
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 0
@Masilt: wygląda na to że się nie zdeployowała. Niestety nie powiem ci jak to dokładnie działa bo ja pracuję z kontenerami i AKSem
  • Odpowiedz
#maven vs #gradle - które wybrałbyś w nowym projekcie?

Maven czy gradle?

  • maven 55.6% (5)
  • gradle 44.4% (4)

Oddanych głosów: 9

  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam plik gradle w którym określam sciezke do pliku w folderze 'home/costam/cos.txt' , tworze ten plik w katalogu projektu w tej sciezce (a wiec w folderach home/costam).
Jak uruchomię to na linuxie i jak uruchomię to na windowsie to windows weźmie ten z katalogu projektu plik a linux weźmie ten z katalogu systemowego?

#programowanie #gradle #linux
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej mireczki bawił się ktoś w code coverage na androidzie?

Ostatnio dodawałem jacoco do projektu w architekturze MVP i chciałem sprawdzić pokrycie kodu presenterów.

Niestety jacoco czesał wszystkie metody, w tym prywatne (zależy mi tylko na publicznych).

Czy
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czy jest jakiś czysty sposób, aby za pomocą #gradle generować w #spring migracje dla #liquibase na podstawie #hibernate? Są pluginy liquibase-hibernate i liquibase-gradle-plugin, jednak sypie mi tym https://stackoverflow.com/questions/40473197/cant-get-liquibase-gradle-plugin-to-work-with-spring-jpa-application i póki co również skończyłem na własnym tasku dla Gradle'a.

#webdev #java
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 2
Mam projekt który składa się z kilku modułów. Każdy z modułów ma swój gradlowy build. Projekt jest tworzony w springu. Jak to jest że jeden moduł się buduje i uruchamia pyzy użyciu ./gradlew bootRun a pozostałe moduły mimo poprawnych adnotacji i gradle.build wyrzucają błąd że nie znalazł classy main. Clean buildy nie pomagają.
#spring #naukaprogramowania #gradle
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach