Konwertowałem projekt zbudowany z gradlem mrówki. Projekt wygląda na coś takiego

root
|-RelevantProject
...
|-LotsOfOtherSubprojects
...
|-Resources
|--resources
|---subfolder
|----bunchOfProps.properties

Kod odwołuje się do nich jako Resources/resources/subfolder/bunchOfProps.properties. Ten kod i struktura folderu nie mogą być zmieniane, ponieważ skrypty mrówek muszą działać

Próbowałem włączyć to jako

sourceSets {
    main {
        resources {
            srcDir '../Resources'
        }
    }
}

Co nie powiedzie się, ponieważ folder na najwyższym poziomie kodu jest teraz odcięty. Kod będzie działał, jeśli szukasz resources/subfolder/bunchOfProps.properties.

Próbowałem również compile files('../Resources') z tym samym problemem. Trudno powiedzieć, ponieważ ten nie pojawił się w katalogu budowy. compile fileTree(dir: '../', include: '**/*.properties'), które miałem nadzieję, wybrałby odpowiednie pliki również nie pojawiły się w katalogu Build.

Wystarczy za pomocą katalogu głównego jako folderu zasobów spowodowało problemy, ponieważ obejmowały inne projekty, a nawet katalog .gradle. Jeszcze nie dostałem się do skompilowania w ten sposób. Nie jestem jeszcze pewien, jeśli mogę wykluczyć wystarczająco dużo rzeczy, aby to dostać do pracy.

0
John M 2 lipiec 2020, 21:36

2 odpowiedzi

Najlepsza odpowiedź

Jeśli wystarczy skopiować pliki

ext.prjRoot = project.projectDir.toString()

task copyExtResources(type: Copy) {
    from prjRoot
    include "Resources/**"
    into "$buildDir/resources/main"
}

processResources.dependsOn copyExtResources
0
PrasadU 3 lipiec 2020, 05:11

Odpowiedź Prasadu jest pewna, ale przełamuje aktualne sprawdzenie, ponieważ wprowadza zadanie, w którym wyjście nakłada się z jednym z processResources. Lepiej jest zmienić konfigurację tego ostatniego zadania:

processResources {
    from(projectDir) {
        include("Resources/**")
    }
}
1
Bjørn Vester 3 lipiec 2020, 08:07