คำถามติดแท็ก gradle

Gradle เป็นเครื่องมือสร้างโปรเจ็กต์อัตโนมัติที่ใช้ Groovy DSL สคริปต์การสร้าง Gradle สนับสนุนที่เก็บ Maven และ Ivy รวมถึงระบบไฟล์ธรรมดาสำหรับการจัดการการพึ่งพา

3
Gradle buildscript พึ่งพา
อะไรคือความแตกต่างระหว่างการประกาศคลังเก็บใน buildScriptส่วนของการสร้าง gradle หรือในระดับรากของการสร้างคืออะไร ตัวเลือกที่ 1: build.gradle : buildScript { repositories { mavenCentral(); } } หรือ build.gradle : repositories { mavenCentral(); }
176 build  repository  gradle 

23
ไม่สามารถแก้ไขสัญลักษณ์ 'ธีม' ใน styles.xml (Android Studio)
ตั้งแต่วันนี้ Android Studio ไม่สามารถค้นหาชุดรูปแบบ AppCompat ใน styles.xml แต่ตัวอย่างเช่นรู้จัก AppCompatActivity ในรหัส เวอร์ชัน Android Studio ของฉันคือ 2.2.2, Build # AI-145.3360264 ฉันได้ลองอัพเกรดเป็นเครื่องมือบิลด์ล่าสุด, คอมไพล์ sdk (25) เป็นต้น แต่มันก็ไม่สามารถแก้ปัญหาได้ ในขณะนี้ฉันได้ติดตั้งสิ่งต่อไปนี้ (จากผู้จัดการ sdk): android api: 19 และ 23 เครื่องมือแพลตฟอร์ม sdk: 25.0.1 เครื่องมือ sdk: 25.2.3 เครื่องมือสร้าง: 23.0.2 และ 25.0.1 พื้นที่เก็บข้อมูลสนับสนุน: 40 ที่เก็บของ google: 39 และอีกสองสามคนที่ไม่ควรระบุไว้ที่นี่ build.gradle ของแอป: …

2
ไวยากรณ์สำหรับการเขียนความคิดเห็นในไฟล์ build.gradle คืออะไร
มองดูbuild.gradleไฟล์นี้ apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "package.myapp" minSdkVersion 19 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.nineoldandroids:library:2.4.0' } เกิดอะไรขึ้นถ้าผมอยากจะเขียนความคิดเห็นเกี่ยวกับทำไมผมเลือกห้องสมุดนี้สำหรับโครงการนี้ , ไวยากรณ์สำหรับการเขียนความคิดเห็นในbuild.gradleไฟล์คืออะไร?

6
transitive = true ใน Gradle ทำอะไรกันแน่ (wrt crashlytics)
Gradle transitive = trueทำอะไรกันแน่ มันไม่ได้เป็นที่ชัดเจนจากเอกสาร Gradle นี้อยู่ในบริบทของภายในcompile build.gradleในกรณีของฉันฉันขึ้นอยู่กับความล้มเหลวของ Android compile('com.crashlytics.sdk.android:crashlytics:2.2.2@aar') { transitive = true; } เอกสาร Gradle หลายฉบับ ( ที่นี่และที่นี่ ) บ่งบอกว่าค่าเริ่มต้น "สกรรมกริยา" เป็นจริง ยังเอาtransitive = trueผลลัพธ์ในการอ้างอิงสกรรมกริยาที่ไม่ได้นำเข้ามา (โดยเฉพาะKitGroup) class file for io.fabric.sdk.android.KitGroup not found เอกสารบอกว่าเป็นค่าเริ่มต้นที่เป็นจริง แต่พฤติกรรมที่แท้จริงดูเหมือนจะตรงกันข้าม ฉันกำลังใช้ Gradle 2.2.1 พฤติกรรมที่เปลี่ยนไประหว่าง 2.2 และ 2.4? แก้ไข : การอ้างอิง Transitiveที่เกี่ยวข้องไม่ได้รับการแก้ไขสำหรับไลบรารี aar โดยใช้การไล่ระดับสี

30
com.google.android.gms: มีการร้องขอ play-services-measure-base จากห้องสมุดอื่น ๆ
ฉันอัปเดตเป็น gradle 4.0.1 และเริ่มได้รับข้อผิดพลาดต่อไปนี้ ห้องสมุด com.google.android.gms: play-services-measure-base กำลังถูกร้องขอโดยห้องสมุดอื่น ๆ อีกมากมายที่ [[15.0.4,15.0.4]] แต่แก้ไขเป็น 15.0.2 ปิดใช้งานปลั๊กอินและตรวจสอบโครงสร้างการพึ่งพาของคุณโดยใช้. /gradlew: แอพ: การอ้างอิง โครงการของฉันไม่ได้ใช้การพึ่งพานั้นดังนั้นฉันจึงค้นหาทั่วโลกและมันขึ้นมาข้างในเท่านั้น สร้าง / ปานกลาง / ผ้าสำลีแคช / maven.google / ดอทคอม / Google / Android / กรัม / กลุ่ม index.xml เช่นเดียวกับสายนี้ <play-services-measurement-base versions="15.0.0,15.0.2"/> ดังนั้นฉันจึงพยายามลบโฟลเดอร์สร้างและทำความสะอาดโครงการ แต่จะสร้างใหม่ด้วยค่าเดียวกัน: / ดังนั้นข้อผิดพลาดยังคงอยู่

14
วิธีการตั้งค่า versionName ในชื่อไฟล์ APK โดยใช้ gradle
ฉันกำลังพยายามตั้งค่าหมายเลขรุ่นเฉพาะในชื่อไฟล์ APK ที่สร้างโดยอัตโนมัติแบบ gradle ตอนนี้ gradle สร้างแต่ผมต้องการให้มีลักษณะบางอย่างเช่นmyapp-release.apkmyapp-release-1.0.apk ฉันได้ลองเปลี่ยนชื่อตัวเลือกที่ดูยุ่ง ๆ มีวิธีง่าย ๆ ในการทำเช่นนี้? buildTypes { release { signingConfig signingConfigs.release applicationVariants.each { variant -> def file = variant.outputFile variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) } } ฉันลองใช้รหัสด้านบนโดยไม่มีโชค ข้อเสนอแนะใด ๆ (ใช้ gradle 1.6)

18
Gradle พบ JAVA_HOME ผิดแม้ว่าจะตั้งค่าไว้ถูกต้องแล้ว
เมื่อพยายามรัน gradle ฉันได้รับข้อผิดพลาดต่อไปนี้: # gradle ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/default-java Please set the JAVA_HOME variable in your environment to match the location of your Java installation. อย่างไรก็ตามเมื่อฉันตรวจสอบตัวแปร JAVA_HOME ฉันจะได้รับ: # echo $JAVA_HOME /usr/lib/jvm/java-7-oracle JAVA_HOME ของฉันถูกกำหนดใน. bashrc และฉันได้ตรวจสอบสองครั้งว่ามันถูกตั้งค่าเป็นแหล่งที่มา การรันjava -versionยังยืนยันว่า JAVA_HOME ตั้งค่าไว้ถูกต้องและอยู่บน PATH # java -version java …

7
วิธีที่ดีที่สุดในการเพิ่มการรองรับ Gradle ให้กับโครงการ IntelliJ
ฉันดูไปรอบ ๆ แล้วและไม่พบทางออกที่ดีที่สุดในการแปลงโครงการ IntelliJ ที่มีอยู่เป็น Gradle ฉันทำงานในสภาพแวดล้อมแบบทีมและปัจจุบันเราแชร์ไฟล์. ipr เนื่องจากเรามีการกำหนดค่าการสร้างบางอย่างที่เราติดตาม เราจะกำจัดพวกที่ชอบ Gradle ในที่สุด แต่ฉันไม่สามารถทำสิ่งต่าง ๆ มากเกินไปจนกว่าการแปลง Gradle จะเสร็จสิ้น นอกจากนี้ไฟล์ต้นฉบับ Java ของเรายังอยู่ในรูทของไดเรกทอรี src แทน src / main / java ตามที่เป็นมาตรฐาน มีวิธีที่ฉันสามารถเพิ่ม Gradle ให้กับโครงการของฉันที่จะไม่ทำให้ฉันลบและสร้างโครงการ IntelliJ ของฉันขึ้นมาใหม่และจะไม่ทำให้คนอื่นสับสนเมื่อพวกเขาทำ Git pull?

6
การใช้ Build Flavours - จัดโครงสร้างโฟลเดอร์ซอร์สและ build.gradle อย่างถูกต้อง
โปรดทราบ:คำตอบแก้ไขหลังจากคำตอบของซาเวียร์ ฉันกำลังพยายามใช้Build Flavours ที่แตกต่างกันสำหรับโครงการแอปพลิเคชันเดียวกันใน Android Studio อย่างไรก็ตามฉันดูเหมือนจะมีช่วงเวลาแย่มากที่กำหนดให้ทำงานได้อย่างเหมาะสม ขั้นตอน: สร้างโครงการ Android Studio ใหม่ชื่อ 'ทดสอบ' เปิด build.gradle * และเพิ่มบรรทัดต่อไปนี้: productFlavors { flavor1 { packageName 'com.android.studio.test.flavor1' } flavor2 { packageName 'com.android.studio.test.flavor2' } } หลังจากรีสตาร์ท Android Studio ตอนนี้ฉันเห็นรูปแบบการสร้าง 4 แบบในส่วน Build Variants หมายความว่าเราประสบความสำเร็จในการติดตั้งรสชาติผลิตภัณฑ์จนถึงขณะนี้ ** สร้างโฟลเดอร์ซอร์สใหม่สำหรับflavor1 ; อย่างไรก็ตามฉันไม่แน่ใจว่าฉันทำถูกหรือไม่ นี่คือวิธีที่ฉันทำ: โปรดทราบว่าชื่อแพ็คเกจของฉันสำหรับโครงการนี้คือ: com.foo.test คลิกขวาที่srcโฟลเดอร์สำหรับ flavor1 src/flavor1/java/com/foo/test/MainActivity.javaจริงผมสร้างโฟลเดอร์ในแต่ละสำรวจในทางที่โครงสร้างเป็น ข้างต้นทำงานได้ดีเนื่องจากโฟลเดอร์ …

17
ไม่สามารถค้นหาหรือโหลดคลาสหลัก org.gradle.wrapper.GradleWrapperMain
ฉันทำความสะอาดทั้งโครงการโดยการลบไดเรกทอรีท้องถิ่นเช่น~/.gradle, ~/.m2 ~./androidและ~/workspace/project/.gradleและ chosing File -> Invalidate Caches / Restart...ใน Android สตูดิโอ ตอนนี้การประมวลผลคำสั่ง./gradlewจะนำไปสู่เอาต์พุตต่อไปนี้: usr$ ./gradlew tasks Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain ไม่จำเป็นต้องบอกว่าฉันลบไปมากเกินไปคำถามคือจะซ่อมได้อีกครั้งได้อย่างไร คุณมีความคิดวิธีการแก้ไขปัญหานี้หรือไม่?

10
การตั้งค่าโปรไฟล์ที่ใช้งานและกำหนดค่าตำแหน่งจากบรรทัดคำสั่งในฤดูใบไม้ผลิบูต
ฉันมีแอพพลิเคชั่นบู๊ทสปริง ฉันมีสามโปรไฟล์ในโปรแกรมประยุกต์ของฉัน> การพัฒนา, การแสดงละครและการผลิต ดังนั้นฉันมี 3 ไฟล์ แอพลิเคชัน development.yml แอพลิเคชัน staging.yml แอพลิเคชัน production.yml ฉันapplication.ymlsrc/main/resourcesอยู่ภายใน ฉันได้ตั้งค่าโปรไฟล์ที่ใช้งานใน application.yml เป็น: spring: profiles.active: development ไฟล์กำหนดค่าเฉพาะโปรไฟล์อีก 3 รายการจะอยู่ในC:\configโฟลเดอร์ ฉันกำลังใช้โปรแกรมเสริม Gradle สำหรับ eclipse เมื่อฉันพยายามทำ " bootRun " ฉันกำลังตั้งค่าอาร์กิวเมนต์บรรทัดคำสั่งในการกำหนดค่า gradle ของฉันใน eclipse เป็น -Dspring.profiles.active=staging -Dspring.config.location=C:\Config อย่างไรก็ตามคุณสมบัติบรรทัดคำสั่งไม่ได้รับการสะท้อนและโปรไฟล์ที่ใช้งานของฉันได้รับการตั้งค่าเป็นการพัฒนาเสมอ (ซึ่งเป็นสิ่งที่ฉันได้กล่าวถึงในไฟล์ applications.yml) และโฟลเดอร์ C: \ Config จะไม่ค้นหาไฟล์กำหนดค่าโปรไฟล์โดยเฉพาะ ฉันคิดว่าฉันขาดอะไรบางอย่างที่นี่ ฉันพยายามคิดออกมา 2 วันที่ผ่านมา …

4
เลือก Gradle เป็น mvn เพื่อติดตั้ง
ฉันมีงานสร้าง 2 แบบที่ต่างกันใน mvn ฉันพยายามแทนที่เป็น Gradle โครงการ 1 เป็น SDK และโครงการ 2 ใช้ sdk (ตัวอย่าง) ในช่วงเวลาของ Maven มันสร้างสิ่งประดิษฐ์โดยใช้การติดตั้ง mvn ซึ่งเพิ่มโครงการทั้งหมดลงในพื้นที่เก็บข้อมูลท้องถิ่น ฉันชอบทำงานแบบไล่ระดับอย่างนั้น ฉันชอบ project 1 build.gradle จำเป็นต้องโพสต์เป็นที่เก็บข้อมูลในระดับพื้นที่และจากนั้นตัวอย่างโครงการจำเป็นต้องใช้ ใน maven เราทำการติดตั้ง mvn ซึ่งเพิ่มสิ่งประดิษฐ์โครงการลงในโฟลเดอร์. m2 แต่จะทำอย่างไรในการไล่ระดับดังนั้นสิ่งที่ฉันสามารถเพิ่มสิ่งประดิษฐ์ของโครงการลงในพื้นที่เก็บข้อมูลท้องถิ่น ทางไหนที่ฉันสามารถทำได้
163 maven-2  gradle 

6
วิธีที่แนะนำในการหยุดการสร้าง Gradle
ฉันจะหยุดการสร้าง Gradle หลังจากตรวจพบปัญหาได้อย่างไร ฉันสามารถใช้ assert, โยนข้อยกเว้นทำ System.exit (ความคิดที่ไม่ดี) หรือใช้ฟังก์ชั่นเฉพาะใน Gradle (แต่ฉันไม่สามารถหาได้) อะไรคือวิธีที่ดีที่สุดสำหรับ Gradle (และทำไม?)
162 groovy  build  gradle 

14
การกำหนดค่าพร็อกซี Gradle
ฉันต้องการการเข้าถึงเว็บจาก Gradle ผ่านพร็อกซีเซิร์ฟเวอร์เพื่อใช้การรวม Gradle / Artifactory สำหรับ Jenkins เพื่อลดสาเหตุที่เป็นไปได้สำหรับปัญหาฉันเพิ่มปลั๊กอิน Artifactory ใน build.gradle และเรียกใช้จากบรรทัดคำสั่ง: apply { apply from: "http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle" } ทำตามคำอธิบายนี้ฉันระบุสิ่งต่อไปนี้ใน. gradle / gradle.properties ในโฮมไดเร็กตอรี่ของฉัน: systemProp.http.proxyHost=hostname systemProp.http.proxyPort=8080 systemProp.http.proxyUser=de\\username systemProp.http.proxyPassword=xxx ด้วยการกำหนดค่าพร็อกซีข้างต้น (ที่รู้จักกันในการทำงาน) มันล้มเหลว: 11: 33: 17.699 [ข้อผิดพลาด] [org.gradle.BuildExceptionReporter] เกิดจาก: java.io.IOException: เซิร์ฟเวอร์ส่งคืนรหัสตอบกลับ HTTP: 407 สำหรับ URL: http://gradle.artifactoryonline.com/gradle/plugins/org/ JFrog / buildinfo / buildinfo-ระบาย-gradle / …

7
Jersey หยุดทำงานกับ InjectionManagerFactory ไม่พบ
ฉันได้รับข้อผิดพลาดด้านล่างขณะใช้งาน Jersey API ใน Tomcat 8.5.11 ซึ่งทำให้ API ของฉันหยุดทำงาน: HTTP Status 500 - Servlet.init () สำหรับ servlet Jersey REST Service แสดงข้อยกเว้น พิมพ์รายงานข้อยกเว้น ข้อความ Servlet.init () สำหรับ servlet Jersey REST Service แสดงข้อยกเว้น คำอธิบายเซิร์ฟเวอร์พบข้อผิดพลาดภายในที่ทำให้ไม่สามารถดำเนินการตามคำขอนี้ได้ ข้อยกเว้น javax.servlet.ServletException: Servlet.init () สำหรับ servlet Jersey REST Service โยนข้อยกเว้น org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:474) org.apache.catalina.valves.ElrorReportValve.Valve java: 79) org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:624) org.apache.catalina.connector.CoyoteAdapter.service …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.